ember-cli завершается с ошибкой --environment=production (необнаруженная ошибка:Не смог найти модуль)
-
21-12-2019 - |
Вопрос
Я использую ember-cli, и у меня возникла проблема с выбором производственной среды.В частности, все работает, когда я запускаю ember serve --environment=development
и я получаю пустую страницу при запуске ember serve --environment=production
.В консоли вижу:
- Неперехваченная ошибка типа:неопределенное не является функцией
- Необнаруженная ошибка:Не удалось найти модуль simple-auth/authenticators/base.
Все остальное равно, и все зависимости актуальны.Я полный нуб, поэтому даже не знаю, с чего начать отладку:это уголек?Эмбер-кли?брокколи?Любая помощь будет оценена по достоинству.
Решение
Решение упоминается на веб-сайте Ember CLI:
Это несколько нестандартно и не рекомендуется, но предположим, что из-за требований вашего приложения вам необходимо использовать полную версию Handlebars даже в производственной среде.
В принципе, можно пройти vendorFiles
вариант для вашего EmberApp
экземпляр, который заставит CLI включать полную версию Handlebars.
Пример явного требования handlebars.js
, в Brocfile.js
:
var app = new EmberApp({
vendorFiles: {
'handlebars.js': {
production: 'bower_components/handlebars/handlebars.js'
}
}
});
Это рекомендуемый способ решения этой проблемы(обсуждение на GitHub).
Другие советы
У меня была точная та же проблема, и James_1x0 правильно, это проблема брокколи. После отладки возникает, что «неопределенная» ошибка преодолевает на «Ember.handlebars.comPile», которая приводит к другим исследованиям. Похоже, что в производстве revreironment "handlebars.js" заменяется «рулями.runtime.js» в процессе сборки Ember-CLI, что, кажется, проблема для брокколи в это время.
Другие Devs имели такую же проблему, но и с другими библиотеками: https://github.com/stefanpenner/ember-cli/pull/675# ISSUEComment-47431195
Здесь решение было добавлению:
var index = app.legacyFilesToAppend.indexOf('bower_components/handlebars/handlebars.runtime.js');
if(index) {
app.legacyFilesToAppend[index] = 'bower_components/handlebars/handlebars.js';
}
.
в ваш brocfile.js, чтобы заменить "handsbars.runtime.js" с "рулем.js". Это также исправлена проблема для меня. Он уверен, что недостаток того, что весь файл руль развернут, но сейчас его Workaround, пока проблема не будет исправлена.