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) {
     // ...
  });
Другие вопросы по тегам