我很新,正在尝试构建一个应用程序它运行良好
现在我正在尝试缩小文件:
错误:未知提供程序:aProvider<-a
uglify: {
my_target: {
files: {
'app/output/output.js': [
'app/js/angular-ui-router.js',
'app/js/angular-animate.js',
'app/js/packery.pkgd.js',
'app/js/app.js',
'app/js/services.js',
'app/js/controllers.js',
'app/js/directives.js'
]
}
}
}
1) 如何解决这个问题?
2) 一些博客示例建议在丑陋使用之前使用grunt contrib concat——为什么?
第二个问题让我困惑
编辑:
阅读关于ng注释它们必须使用数组语法编写。
我的代码结构像这个
var app = angular.module('bigApp', []);
app.controller('mainController', ['$scope', function($scope) {
$scope.message = 'HOORAY!';
}]);
但未解决错误"未知提供程序:aProvider<-"a'
在对文件进行uglify之前,应该先将其连接起来,原因是uglify会更改函数、控制器等的名称,当您像在示例中那样进行操作时,文件将在整个应用程序的上下文之外进行丑化,并且无法正确找到重命名的函数。为了正确地丑化Angularjs,你也应该在grunt中使用ng-annotate
,除非你已经在控制器/服务/工厂中使用了以下符号
需要ng注释
.controller('myController', function (serviceA, factoryB, filterC){
//something fancy
})
不需要ng注释
.controller('myController', [ 'serviceA', 'factoryB', 'filterC', function (serviceA, factoryB, filterC){
//something fancy
}])