У Angularjs есть эта хорошая функция автоматического обнаружения поставщиков на основе аргументов функции. Например, если я хочу использовать $http в некоторой функции, я бы назвал ее так:
$inject.invoke(function ($http) {
});
Angularjs будет "знать", каковы мои зависимости. Это выяснит это, прочитав мое тело функции и опираясь на имена аргументов, которые он будет знать.
Однако существует проблема, когда вы хотите минимизировать код. Minifier изменит имена аргументов. Вот почему мы должны использовать это обозначение:
$inject.invoke(['$http', function ($http) {}]);
или это обозначение:
function Foo ($http) {}
Foo.$inject = ['$http'];
$inject.invoke(Foo);
Мы всегда должны в конечном итоге минимизировать наш код. Поэтому нам следует избегать использования этой магии (первый пример).
И теперь моя проблема:
Я пытаюсь минимизировать код js, и angularjs не может разрешить имя поставщика.
Я не могу найти место, где я не указал .$inject = [...]
. Теперь он просто говорит: "Unknown provider a"
и я не знаю, к какой функции он относится.
Можно ли отключить автоматическое обнаружение (автоинжектор) провайдеров? Я бы проверил и исправил свой код перед тем, как его известить.
Итак, мне интересно, как отключить этот "магический" улов. Поскольку я всегда уменьшаю свой код, я хочу, чтобы angularjs кричали на меня, когда я случайно использую это супергероическое зло.
Как отключить его?