Angular.js 'Неизвестный поставщик: iProvider <- i' ошибка в производстве
Я работаю над угловым проектом, на локальном он работает отлично, но когда я развертываю в Divshot, он ломается и выдает ошибку "Неизвестный поставщик: iProvider <- i".
Это ссылка на: Divshot development build
Любой совет будет очень признателен.
2 ответа
Это связано с тем, что Angular разрешает имена провайдеров путем буквального преобразования функции в строку и использования имен ее параметров. При развертывании вы, вероятно, минимизируете свой код. Поэтому то, что выглядело как myCoolService
будет уменьшен до i
или же a
или что-то другое.
У вас есть способы решить эту проблему: 1. Используйте синтаксис массива 2. Используйте ngAnnotate или что-то еще в вашей сборке, чтобы создать для вас синтаксис массива.
Прочитайте часть о Минификации на https://docs.angularjs.org/tutorial/step_05
Я предполагаю, что ваш код JS был минимизирован в производстве. Идентификатор вашего поставщика услуг может быть переименован во что-то неизвестное.
Я бы посоветовал вам добавить строковый идентификатор вашего провайдера в точке внедрения. Например
angular.module('example')
.controller(['$scope', 'YourServiceProvider', function($scope, YourServiceProvider) {
// ...
});