繁体   English   中英

如何使用grunt uglify角项目?

[英]How to uglify an angular project using grunt?

我正在尝试部署一个meanjs项目,但似乎无法弄清楚如何使用grunt缩小,连接和uglify项目。

到目前为止我发现了什么:

  1. 需要运行CONCAT -> ngAnnotate ->丑化(否则代码将无法运行)
  2. 需要以依赖顺序连接(否则它不会运行)

有了这个逻辑,我设法创建了相关第三方库(节点模块)的单个“uglified”版本,但我不能对我编写的模块做同样的事情。

我已经尝试使用concat工具,这些工具应该根据依赖项重新排序文件(grunt-concat-in-order,grunt-concat-dependencies,grunt-concat-deps),但没有任何帮助。 只是缺少模块/声明的错误。

我已经尝试重新排序应该连接的js文件,每次缺少其他东西并且网站部分加载(充其量)。 根据文件在编译头中出现的顺序重新排序文件没有帮助。

是否存在根据其依赖关系或根据我应该重新排序它们的一般逻辑来连接Angular文件的东西?

谢谢。

找到了! 显然JS和Angular是灵活的,缺少';' 在模块/指令声明的最后。 我已经完成了整个代码并添加了缺失';' 在适当的地方。

例如:

angular.module('core').filter('xyz', [function() {
    .....
}])

终于可以去睡觉了。

*原帖: Angular module()。factory()不是concat之后的函数(gulp) (为Max Yari喝彩)

首先要检查的是你实际上在代码中的任何地方都使用了DI模式,因为函数参数将在uglification期间被替换,因此将不再被解析。

ControllerName.$inject = ['component'] 

要么

angular.module('module') 
   .controller(['module', function (module) { /*... */}) ;

完成后,检查是否可以明确指定文件顺序(伪代码):

['module1_decl_file.js','module2_decl_file.js', '*.js','**/*.js']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM