首页 > 解决方案 > 升级 Ember 时出现未知的全局错误

问题描述

将 Ember 2.11 升级到 2.18 时,我遇到了很多未知的全局错误:

全球未知:Ember.Inflector 位置:app\routes\base-mt.js 第 17 行

 i18n: Ember.inject.service(),
searchFilter: Ember.inject.service('search-filter'),
inflector: new Ember.Inflector(Ember.Inflector.defaultRules),
init: function () {
    this._super();

全球未知:Ember.testing 位置:app\routes\base.js 第 30 行

//Don't attempt route reloading if testing
if(!Ember.testing) {
    this.cleanMemory(routeName);
}

全球未知:Ember.MODEL_FACTORY_INJECTIONS 位置:app\app.js 位于第 10 行

var ComposerOverrides = window.ComposerOverrides || {};

Ember.MODEL_FACTORY_INJECTIONS = true;

Ember.TextField.reopen({

Ember.生产

全球未知:Ember.production 位置:app\router.js 在第 1937 行

 });

if(!Ember.production) {

Unknown Global Global:Ember.onerror 位置:app\application\route.js 在第 48 行

 let route = this;
if(Ember.production) {
    Ember.onerror = function (error) {
        route.router.send('error', error);
    };

全球未知:Ember.Logger 位置:app\application\route.js 第 167 行

if (error  error.message){
        if(!Ember.production) {
            Ember.Logger.error(error.message);
        }
        let errorModel = Ember.Object.create();

全球未知:Ember.Handlebars 位置:app\helpers\add-new-line.js 在第 5 行

export function addNewLine(value) { var breakTag = ‘ ’; 
let str =     Ember.Handlebars.Utils.escapeExpression(value);

全球未知:Ember.String 位置:app\services\jsonschema-validation.js 第 14 行

// supports, will do for the moment.
    if (!model.includes('-w-')) {
        model = Ember.String.pluralize(model);

标签: ember.jsember-dataember-cliember.js-2

解决方案


你使用了 ember-cli-update 吗?有一个 codemod 可以让你切换到新的模块语法

npm install -g ember-cli-update
ember-cli-update --to 2.18
ember-cli-update --run-codemods
# ember-modules-codemod is the one that updates the imports

推荐阅读