角度javascript缩小原因错误:$injector:moduler模块错误

角度javascript缩小原因错误:$injector:moduler模块错误,javascript,angularjs,minify,bundling-and-minification,Javascript,Angularjs,Minify,Bundling And Minification,当我像下面这样定义angular时,它会在使用这个javascript时引起问题,这就是错误:$injector:modulerr 模块错误 angular.module('myModule').controller('MyController', function ($scope) { }); 现在,如果我写我的角度如下,缩小后就可以了 angular.module('myModule').controller('MyController', ["$scope", function ($s

当我像下面这样定义angular时,它会在使用这个javascript时引起问题,这就是错误:$injector:modulerr 模块错误

angular.module('myModule').controller('MyController', function ($scope) {

});
现在,如果我写我的角度如下,缩小后就可以了

angular.module('myModule').controller('MyController', ["$scope", function ($scope) {

}]);

在缩小过程中,第一种方法将$scope转换为其他变量名,看起来这就是问题所在。有没有办法避免在第二种情况下不编写代码?

您可以使用
$inject

function MyController($scope) {
}

MyController.$inject = ['$scope'];
angular.module('myModule').controller('MyController', MyController);
你有这个给Grunt的:
我很确定你可以在webpack/gulp等中找到同样的东西。

如果你有某种构建过程(或者你想引入一个非常小的过程),请看一下
ng annotate
项目()。它是一个处理javascript代码并帮助您避免重复的工具。它所做的基本上是读取代码的第一个版本,并为您生成一个$inject属性,如Pedro Nascimento的回答所示

grunt、gulp、webpack等有几个插件,但是如果您还没有构建过程,那么使用这个模块也很容易