angular-js uglify下载的模块

angular-js uglify downloaded modules

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

我正在尝试缩小它们的实际工作。然而,在它们被缩小(丑化)后,我收到以下错误:

failed to instantiate module app due to:

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

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

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

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

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

  1. 显式依赖注入

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

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

不,这并不意味着您不能缩小模块文件。你可以做到这一点。

检查以确保它们的顺序 concatenated/minnified 是正确的,例如,如果模块 x 使用模块 y 中的某些内容并且 x 在 y 之后加载,这将显示错误。

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

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