javascript - 在闭包编译器中连接并编译丑陋的javascsript

标签 javascript gruntjs google-closure-compiler

对于某些 javascript 包,我只能获取缩小/丑化的文件。我需要将它们与我的其他 JavaScript 文件结合起来,并使用 google 闭包编译器进行编译。

我的问题是:

将原始的未压缩的 JavaScript 传递给闭包编译器(而不是丑陋的 JavaScript)是否更好? (特别是高级优化模式。)

由于许多 javascript 库本身提供缩小版本(例如 jquery 和 angularjs),因此我是否需要担心是否将这些脚本包含在另一个缩小任务(uglify 或闭包编译)中。或者我应该把它们挑出来然后只将它们连接起来?

最佳答案

如果您喜欢微优化,您可能需要查看几个缩小器,看看哪个最适合您的代码库。主要有UglifyJS、Google Closure Compiler和ESMangle。有一个nice comparison on the Uglify website 。通过多个压缩器运行代码可能看起来有点矫枉过正,但如果它能产生更好的结果那为什么不呢。 :-)

缩小器不关心你是否传入已经缩小的东西;作为一个例子,我在生产中使用 r.js 优化器,它连接了我未缩小的源代码和缩小的 jQuery 等,然后丑化了整个代码。

您不需要真正担心重新压缩库,它要做的就是在构建步骤中添加更多时间,因此如果花费太长时间,那么您可以从压缩器中分离出库并简单地将它们连接起来。

关于javascript - 在闭包编译器中连接并编译丑陋的javascsript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19675401/

相关文章:

javascript - "WARNING - Suspicious code. The result of the ' getprop' operator is not being used."是什么意思?

google-closure-compiler - 使用console.time

javascript - modal.style.display 不起作用

javascript - 如果我滚动并刷新网页,我的导航标题就会丢失其属性。 jQuery

javascript - 压缩脚本和样式并将所有 js 和样式引用组合成单个引用以优化站点性能

gruntjs - Grunt 任务 - 释放端口

gruntjs - Grunt usemin 任务来替换资源

javascript - 为什么 Closure 在使用 function.apply 时不对参数进行类型检查?

javascript - 如何在选中另一组单选按钮时取消选中一组单选按钮

javascript - grunt sass 任务不起作用?