Ember从2.7升级到3.2后启动报错:path参数类型错误
解决Ember 2.7升级到3.2后启动时的
ERR_INVALID_ARG_TYPE错误 这个错误是Node.js的path.join()方法接收到对象类型参数(预期为字符串)导致的,通常和升级后依赖不兼容、旧配置写法过时有关,按以下步骤排查解决:
清理依赖并重装
- 删除
node_modules文件夹:rm -rf node_modules(Mac/Linux)或rd /s /q node_modules(Windows) - 删除
package-lock.json(或yarn.lock)文件 - 执行
npm install重新安装依赖
- 删除
检查
ember-cli-build.js配置
旧版本的配置可能存在错误的路径传递方式,比如给app.import()或插件配置传了对象而非字符串路径。比如排查这类错误写法:// 错误示例:传递了包含路径的对象 app.import({ module: 'some-package', path: require.resolve('some-package') });改成直接传递字符串路径:
app.import('node_modules/some-package/dist/file.js');更新Ember CLI核心依赖
确保package.json里的ember-cli、broccoli相关依赖版本匹配Ember 3.2的要求:ember-cli应指定为~3.2.0- 同步更新
ember-cli-babel、broccoli-asset-rev等配套插件到兼容3.2的版本,修改后重新执行npm install
清理构建缓存
执行ember clean清理Broccoli的构建缓存,再重新启动项目:npm start排查第三方插件兼容性
部分旧第三方插件可能不兼容Ember 3.2,可临时注释package.json里的非核心插件,逐个重装启动排查,定位出导致路径错误的插件后,要么升级该插件到兼容版本,要么寻找替代方案。
内容的提问来源于stack exchange,提问作者Asif Raza
相关产品推荐
相关产品推荐

