Используйте ember-i18n с производственной средой ember-cli

Я столкнулся с проблемой, когда ember-i18n можно использовать с сервером ember-cli, работающим в среде разработки. Но когда я устанавливаю --environment production, я получаю следующую ошибку:

Error: The default Ember.I18n.compile function requires the full Handlebars. Either include the full Handlebars or override Ember.I18n.compile.

Ошибка возникает из-за того, что ember-cli включает Handlebars-production в рабочей среде. Есть ли решение этой проблемы?

Я думаю, мне нужно предварительно скомпилировать переводы.


person Willem de Wit    schedule 08.07.2014    source источник


Ответы (2)


Один из способов исправить это — настроить ember-cli для включения полной версии руля в рабочую среду:

app.import({
  development: 'vendor/handlebars/handlebars.js',
  production:  'vendor/handlebars/handlebars.js'
});

Недостатком является то, что в сборку включена (намного) большая библиотека только для моих переводов. Я продолжаю искать способ прекомпилировать свои переводы.

person Willem de Wit    schedule 08.07.2014

Невозможно обойти импорт полных рулей при использовании ember-i18n. Однако вам не нужно указывать одну и ту же строку импорта для разработки и производства. Просто добавьте это в свой Brocfile:

    app.import('vendor/handlebars/handlebars.js');

У меня была точно такая же проблема, и это решение, которое посоветовал Стефан Пеннер. https://github.com/stefanpenner/ember-cli/pull/675#issuecomment-47431195. Работал нормально для меня. Однако следует отметить одну вещь: по какой-то причине у меня был оператор импорта в качестве первого импорта. Когда это было последним, это, казалось, не работало. Однако я не пробовал где-то между ними или пытался отладить эту проблему.

person Matt Beedle    schedule 08.07.2014