在Visual Studio中缩小和捆绑AngularJS

use*_*794 3 visual-studio asp.net-web-api angularjs angularjs-scope visual-studio-2013

我正在尝试在Visual Studio 2013中缩小和捆绑我的AngularJS/WebAPI项目.当我在缩小后运行我的项目时,我收到如下错误:

Error: [$injector:modulerr] http://errors.angularjs.org/1.2.13/$injector/modulerr?p0=app&P1 =%5B%24injector%3Aunpr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.13%2F%24injector%2Funpr%3Fp0%3Dn%0Av%2F%3C%40http%3A%2F%2Flocalhost%3A63389%2Fbundles%2Fangular%3Fv%3D_ykkA4necF0i5wrX1pYwFxAqwK5bvRGCF4SEL-Meqac1%3A1%0Ane%2Fu.%24injector%3C%40http%3A%2F

从我已经完成的阅读开始,听起来像Angular在缩小代码后出现注入问题.我想弄清楚是否有一个'最佳实践/工作流'来在Visual Studio中调试它.我如何理解上面的错误?

Sim*_*ger 7

我在缩小AngularJs App时遇到的唯一问题是使用函数参数注入语法.喜欢:

app.config(function($serviceA, $serviceB) { ... });
Run Code Online (Sandbox Code Playgroud)

缩小时,函数参数可能会更改为较短的名称.所以这可能会成为:

app.config(function(a, b) { ... });
Run Code Online (Sandbox Code Playgroud)

哪个是未知的.你应该总是(我还没有看到它的坏情况..)使用数组注入语法:

app.config(['$serviceA', '$serviceB', function($serviceA, $serviceB) { ... }]);
Run Code Online (Sandbox Code Playgroud)

函数参数将被缩小,但字符串常量不会,这允许Angular知道您要求的服务的名称,而不管函数参数名称.