如何加快UglifyJS 2的缩小过程?

Gol*_*den 8 javascript minify node.js uglifyjs

我正在使用UglifyJS 2来连接和缩小一堆JavaScript文件(不要太多,大约5到10).此过程使用UglifyJS 2的默认设置从Node.js中运行.

这些文件基本上是Require.js,jQuery,Backbone.js,Backbone.js Marionette,Moment.js以及一些其他(较小的)辅助文件,所有这些都在未压缩(即开发)版本中.

问题是这个过程几乎需要10秒钟.

如果我通过移交完全禁用缩小

{ compress: false }
Run Code Online (Sandbox Code Playgroud)

作为一种选择,它的速度要快得多,但它仍然需要大约2秒钟.

问题1:即使是少量文件,UglifyJS 2通常需要那么长时间吗?或者我最有可能做错了什么?

问题2:如何在不禁用UglifyJS 2的所有有用选项的情况下加快此过程?

pha*_*zei 15

如果将compress unused选项设置为false,则应将其加速一点.只有这一点,我从11秒到5.5秒.

   { 
       compress: {
           unused: false
       }
   }
Run Code Online (Sandbox Code Playgroud)

与它关闭不到2k的差异.

  • 这应该是公认的答案.速度提升是巨大的 (3认同)

Adi*_*Adi 7

minifiers需要几秒钟压缩多个大文件并不罕见.在你的情况下8-12秒是可以的(多个大型库).

但是,我建议不要自己压缩这些库.他们中的大多数都有一群开发人员,他们真正知道他们在做什么,我建议从源代码下载缩小版本,并尽可能简单

copy *.min.js allLibraries.js
Run Code Online (Sandbox Code Playgroud)

要么

cp *.min.js allLibraries.js
Run Code Online (Sandbox Code Playgroud)

注意:确保以正确的顺序连接,这通常意味着The main libraries -> The plugins -> Your code.

至于加速,除了禁用强力压缩等酷炫功能外,你无能为力.

  • 嘿downvoter,请帮我改进我的答案?请让我知道我的错误,以便我能纠正. (5认同)