title: How to disable auto-injector (magic discovery of injector types) in angularjs?
body: <p>Angularjs has this nice feature of auto discovery of the providers based on a function arguments.
  For example, if I want to use $http in some function i would call it like that:</p>
  
  <pre><code>$inject.invoke(function ($http) {
  
  });
  </code></pre>
  
  <p>Angularjs will "know" what are my dependencies. It will figure it out by reading my function's body and based on argument names it will know.</p>
  
  <p>However there is a problem when you would like to minify your code. Minifier will change arguments names. That's why we should use this notation:</p>
  
  <pre><code>$inject.invoke(['$http', function ($http) {}]);
  </code></pre>
  
  <p>or this notation:</p>
  
  <pre><code>function Foo ($http) {}
  Foo.$inject = ['$http'];
  
  $inject.invoke(Foo);
  </code></pre>
  
  <p>We should always in the end minify our code. So we should avoid using this magic (first example) notation. </p>
  
  <p>And now my problem:</p>
  
  <p>I'm trying to minify my js code and angularjs cannot resolve a provider name.
  I can't find a place where i haven't specified <code>.$inject = [...]</code>. Now it just says: <code>"Unknown provider a"</code> and i don't know what function is it referring to.</p>
  
  <p>Is it possible to turn off angularjs auto discover (auto-injector) of providers? I would test and repair my code before minifying.</p>
  
  <p>So, I'm wondering how to disable this "magic" angularjs deduction. 
  Since I always minify my code I want angularjs to yell at me when I will accidentally use this superheroic evil.</p>
  
  <p>How to turn it off?</p>