angular-js uglify下载的模块

时间:2016-01-25 16:19:34

标签: javascript angularjs gruntjs grunt-usemin grunt-contrib-uglify

所以我有一个angular申请。有了这个应用程序,我有很多我在我的应用程序中使用的插件(模块)。

我正在努力缩小它们实际上有用的东西。然而,在他们被缩小(uglifyed)后,我得到以下错误:

failed to instantiate module app due to:

由于:然后是所有模块。 (从第一个加载开始然后继续)。

这是否意味着我无法缩小角度模块。 (这基本上意味着我坚持使用1000行长的HTML文件)。

3 个答案:

答案 0 :(得分:1)

  1. 显式依赖注入

    app.controller('myController',function(module1,module2){
      //...
    });
    myController.$inject=['module1','module2'];
    
  2. 内联注释

    app.controller('myController',['module1','module2',function(module1,module2){
      //...
    });
    

答案 1 :(得分:0)

你可能做错了。正如AngularJs文档所指定的那样,当您要缩小文件时,必须指定依赖项,如下所示:

app.controller('$ctrl', ['dep1', 'dep2', function(dep1, dep2) {
// your code here
}]);

这样,当文件缩小时,不会修改依赖项。请参阅angularJs教程:https://docs.angularjs.org/tutorial/step_05#a-note-on-minification

答案 2 :(得分:0)

不,这并不意味着您无法对模块文件进行缩小。你可以做到这一点。

检查以确保它们被连接/缩小的顺序是正确的,例如,如果模块x使用模块y中的某些内容并且在y之后加载x,则会显示错误。

如果问题是由于模块的声明方式,您可以安装 grunt-ng-annotate ,在运行时,将所有模块声明更改为所需的格式,这样就不会收到上述错误。

npm install grunt-ng-annotate --save-dev