Сначала я объединяю все свои файлы js с помощью задачи grunt-contrib-concat
grunt. С этим все работало нормально (без минификации).
Я пытаюсь переключиться на Google Closure Compiler, чтобы я мог его минимизировать и добавить исходные карты, для начала я использую следующие параметры: --compilation_level WHITESPACE_ONLY
и --formatting=pretty_print
, и я передаю файлы в том же порядке, что и Я делал это раньше с задачей grunt, поэтому у меня должен был быть первый вывод, похожий на тот, что у меня был раньше.
ПРИМЕЧАНИЕ: Благодаря некоторой возвышенной текстовой магии и проверке различий, я смог проверить, что оба моих окончательно сгенерированных файла получили все те же контроллеры / сервисы в порядке ТОЧНОГО ЖЕ.
Все мои контроллеры не использовали синтаксис аннотации (зависимости объявлялись как строка перед контроллером), поэтому я использовал ng-annotate и этот скрипт для решения этой проблемы.
Теперь все мои файлы готовы к минификации. Чтобы быть уверенным в этом, я даже объявил ng-strict-di
в своем приложении и временно переключился на предыдущую систему конкатенации. Он отлично работает и не работает, если я намеренно вставляю опечатку в имя моего контроллера.
Итак, из этого я подумал, что Closure Compiler должен был работать как чудо ... Но нет, я сталкиваюсь с ошибкой Unknown Provider
, когда angular пытается внедрить мой первый сервис в мою функцию app.run()
. (.config()
выполняется хорошо, так как здесь у меня нет пользовательских зависимостей, а также трех первых зависимостей .run()
. Это действительно МОЯ личная реализация зависимости, которая терпит неудачу.)
Кто-то уже сталкивался с подобной проблемой? Есть идеи, что может вызвать это?