新建Ember.js应用启动失败:找不到带双.js后缀的node.js.js文件
解决Ember.js启动时
Cannot find module '@embroider/macros/src/node.js.js'的问题 问题根源
这个错误是**@embroider/macros包版本与你的Ember CLI、Node.js版本不兼容**导致的路径解析bug。具体来说,Node.js 22的ES模块解析逻辑有更新,加上Ember CLI 6.3.0依赖的embroider版本存在路径处理错误,导致导入时被错误追加了额外的.js后缀,把原本的node.js当成node.js.js去查找。
解决方案
1. 锁定@embroider/macros兼容版本
- 打开项目根目录的
package.json,找到@embroider/macros条目(可能在dependencies或devDependencies里) - 将版本改为
^1.16.0(该版本经测试适配Node.js 22、Ember CLI 6.3.0) - 执行
npm install重新安装依赖
2. 彻底清理缓存与依赖
- 执行
npm cache clean --force清除npm缓存 - 删除项目里的
node_modules文件夹和package-lock.json文件 - 重新运行
npm install
3. 强制解决依赖冲突
如果执行npm ls @embroider/macros发现有其他依赖引入了不兼容的版本,在package.json中添加resolutions字段强制指定版本:
"resolutions": { "@embroider/macros": "^1.16.0" }
然后再次执行npm install
验证
完成上述操作后,运行cd super-rentals && npm start,确认启动错误消失,应用功能正常即可。
内容的提问来源于stack exchange,提问作者ptorrsmith
相关产品推荐
相关产品推荐

