Grunt js uglify失败 - 控制台错误:未知提供者:aProvider< -

时间:2016-05-02 18:40:11

标签: angularjs gruntjs grunt-contrib-uglify grunt-contrib-concat

我很新,并试图构建一个应用程序工作正常

现在我正在尝试缩小文件:
错误:未知提供商: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)一些博客示例建议在使用uglify之前使用grunt-contrib-concat - 为什么?

第二个问题令我困惑

修改

阅读ng-annotate后的内容 它们必须使用数组语法编写。

我的代码就像这样

var app = angular.module('bigApp', []);

app.controller('mainController', ['$scope', function($scope) {
    $scope.message = 'HOORAY!'; 
}]);

但没有解决错误'未知提供商:aProvider< - a'

1 个答案:

答案 0 :(得分:1)

在你弄清楚它们之前应该连接这些文件,原因是uglify会改变函数,控制器等的名称,当你这样做时,你的文件会在整个应用程序的上下文之外被解析和重命名的功能无法正确找到。要正确地使用Angularjs,你也应该使用ADD grount,除非你已经在控制器/服务/工厂中使用了以下符号

需要ng-annotate

ng-annotate

不需要ng-annotate

.controller('myController', function (serviceA, factoryB, filterC){
  //something fancy
})