升级Ember 3.28触发Ember Global弃用警告的解决方法
Ember 3.28版本升级Ember Global弃用警告修复方案
问题表现
升级至Ember 3.28版本过程中触发如下弃用警告:
WARNING: [DEPRECATION] [DEPRECATION] Usage of the Ember Global is deprecated. You should import the Ember module or the specific API instead
触发原因
该警告通常由过时的ember-cli-babel依赖导致:v7.26.6之前版本的ember-cli-babel存在转译缺陷,会将符合规范的标准导入语句错误转译为Ember Global API调用,即使用户未编写任何不符合规范的弃用代码,也会触发警告。
当前项目依赖检测结果显示,项目内共存ember-cli-babel@6.18.0、ember-cli-babel@7.19.0两个版本,分别被多个插件引用:
- 标记为Dormant的插件无JavaScript文件,不会触发该警告,可直接忽略
- 标记为Compatible的插件已兼容
ember-cli-babel@7.26.6,优先通过依赖去重即可修复
修复操作步骤
- 第一步:执行依赖去重
- 若使用yarn作为包管理器:先执行
npx yarn-deduplicate --packages ember-cli-babel,完成后执行yarn install - 若使用npm作为包管理器:直接执行
npm dedupe
- 若使用yarn作为包管理器:先执行
- 第二步:升级指定插件
将ember-cli-addon-docs、ember-qunit两个插件升级至最新发布版本。
调试补充说明
- 在
ember-cli-babel升级至v7.26.6及以上版本前,系统不会重复展示全部该类弃用提示 - 若需要查看所有触发该警告的实例,可设置环境变量
EMBER_GLOBAL_DEPRECATIONS="all"后运行对应命令,例如执行测试场景可使用:EMBER_GLOBAL_DEPRECATIONS=all ember test
内容的提问来源于stack exchange,提问作者Monkey
相关产品推荐
相关产品推荐

