Grunt js uglify 失败 - 控制台错误:未知提供程序:a提供程序 <- a



我很新,正在尝试构建一个应用程序它运行良好

现在我正在尝试缩小文件:
错误:未知提供程序: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
}])

相关内容

最新更新