Строй моей игры 2.3 приложения (SBT 0.13.5) с командой «этап активатора» Я получаю сообщение об ошибке:Дорожки нейтрализации не поддерживается оптимизатор («перезагружается»)
Optimizing JavaScript with RequireJS
Error: Error: paths fallback not supported in optimizer. Please provide a build config path override for angular-easyfb
build.sbt:
...
"org.webjars.bower" % "angular-easyfb" % "1.3.1"
main.js:
shim: {
'angular': {
deps: ['jquery'],
exports: 'angular'
},
...
'angular-easyfb': ['angular']
},
paths: {
...
'angular': ['../lib/angularjs/angular'],
'angular-easyfb': ['../lib/angular-easyfb/angular-easyfb'],
...
}});
В режиме разработчика все работает отлично. Мои другие js-libs, основанные на webjar, хорошо функционируют даже в режиме производства (например, «org.webjars»% «угло-эластичный»% «2.4.2»).
Google и SO дают мне много результатов для «Отказоустойчивость путей не поддерживается в оптимизаторе». Кажется, что некоторые нашли решение, а другие этого не сделали.
Как я могу (как Java и Javascript) систематически анализировать, в чем проблема?
Другой способ исправить это редактировать build.sbt 'RjsKeys.paths + = ("angular-easyfb" -> ("../lib/angular-easyfb/angular-easyfb" -> "[некоторый URL-адрес CDN здесь]")) ' – MipH
Хорошо, но теперь какое решение является предпочтительным? В чем разница или есть какое-то другое влияние на библиотеку или процесс оптимизации? – icl7126
@ icl7126 Это зависит от того, как вы используете RJS в своем проекте. Например: 'pipelineStages: = Seq (rjs, digest, gzip)' - для этого случая RJS возьмет все ваши LOCAL файлы js (не в квадратных скобках в main.js), скомбинируйте их только в ONE main.js и отправьте для пользователя gziped и с правильными заголовками кеша/дайджеста (стратегия кеша). НО все файлы CDN (которые находятся в квадратных скобках в main.js) будут загружаться отдельно от общедоступных серверов CDN без влияния RJS (меньше запросов на ваш сервер). – MipH