You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ember从3.*升级到4.12.2后出现Uncaught ReferenceError: Ember is not defined错误

Ember 3.* 升级至4.12.2后运行报错「Uncaught ReferenceError: Ember is not defined」

编译过程无异常,但应用运行时vendor.js抛出如下错误:

vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:98  Uncaught ReferenceError: Ember is not defined
    at a.callback (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:98:389464)
    at a.exports (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2153)
    at a._reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2747)
    at a.reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2532)
    at a.exports (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2125)
    at a._reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2747)
    at a.reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2532)
    at a.exports (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2125)
    at a._reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2747)
    at a.reify (vendor.js?v=95293905-3319-4db8-8355-c1297659dfa6:1:2532)

以下是针对性排查和解决步骤:

  • 调整依赖加载顺序:在ember-cli-build.js中,确保Ember相关的app.import语句放在所有第三方依赖之前,避免其他库提前引用未加载的Ember全局对象。
  • 排查插件兼容性:逐个禁用第三方Ember插件,重新构建运行,定位到引发问题的插件后,升级该插件至兼容Ember 4.x的版本,或替换为替代方案。
  • 验证Auto Import配置:检查package.json中ember-auto-import的版本是否适配Ember 4.12.2,必要时升级到最新兼容版本;同时确认配置未意外排除Ember核心模块。
  • 彻底清理缓存重建:执行以下命令清除缓存后重新构建:
    rm -rf node_modules dist tmp
    npm install
    ember build --environment=production
    
  • 强制暴露Ember全局变量:如果有代码依赖全局Ember对象,在ember-cli-build.js中添加配置:
    app.import('vendor/ember.js', {
      exports: {
        'ember': ['default', '*', 'Ember']
      }
    });
    

内容的提问来源于stack exchange,提问作者deva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:56:13