升级Ember 4.12.2与moment 2.29.4后出现模块找不到错误求助
解决Ember 4.12.2 + Moment 2.29.4模块找不到问题
针对Could not find module 'moment' imported from 'ui/routes/application'错误,可按以下步骤排查解决:
确认Moment已正确安装
检查项目根目录的package.json,确认dependencies中存在moment@2.29.4。如果没有,执行安装命令:npm install moment@2.29.4 --save # 或使用yarn yarn add moment@2.29.4配置Ember的模块解析(适配Ember 4.x)
Ember 4.x默认使用Embroider构建,需确保ember-auto-import已安装并启用,它负责处理npm包的导入:- 安装ember-auto-import:
npm install ember-auto-import --save-dev - 打开
ember-cli-build.js,确保配置包含autoImport:const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function(defaults) { const app = new EmberApp(defaults, { autoImport: {} // 默认配置即可,无需额外参数 }); return app.toTree(); };
- 安装ember-auto-import:
检查导入语句的正确性
确认ui/routes/application.js中的导入语句无拼写错误,格式为:import moment from 'moment';清理Ember缓存
缓存可能导致模块解析异常,执行以下命令清理后重启服务器:npm run clear # 或手动清理缓存目录 rm -rf node_modules dist tmp npm install处理ember-moment插件冲突(若之前使用过)
如果项目依赖ember-moment插件,需升级到兼容Ember 4.x的版本(v10及以上):npm install ember-moment@latest --save-dev升级后按照插件文档重新配置,确保和原生Moment版本兼容。
内容的提问来源于stack exchange,提问作者deva
相关产品推荐
相关产品推荐

