Depuração do erro “Provedor desconhecido” no Angular

Se seu script reduzido estiver gerando um erro como:

Unknown provider: bProvider <- b <- myService

Procure sua declaração myService:

angular('myModule').service('myService', function(anotherService) {
// ...
});

O que acontece durante a minimização é que outro argumento de serviço está sendo minimizado para ‘b’ (ou outra coisa). O Angular tentará encontrar o serviço ‘b’ e, quando isso falhar, tentará encontrar o ‘bProvider’ para fornecer o serviço. Como nenhum deles foi declarado, você receberá o erro “Provedor desconhecido”.

Para corrigir isso, você deve alterar todas as dependências para strings:

angular('myModule').service('myService', ['anotherService', function(anotherService) {
// ...
}]);

Dessa forma, quando a minificação for feita, não vai atrapalhar a injeção de dependência.

PS. Isso se aplica a qualquer declaração, não apenas aos serviços.