【问题标题】:Javascript simplifier?Javascript 简化器?
【发布时间】:2013-04-23 23:48:38
【问题描述】:

我想删除未使用或与给定上下文无关的函数。假设我们有:

function a(){ console.log('this is an unrelated function'); }
function b(){ console.log('world'); }
function c(){ console.log('hello' + b()); }
c();

现在a()根本不用,我也不需要它,它只是让脚本变大了。 jQuery 实际上也是如此。我不确定我是否需要像 jQuery 那样多的代码。我仅将 jQuery 用于highcharts 并通过 id 和类从 dom 中选择元素,但是摆脱未使用的函数真的很好,因为 jQuery 实在是太大了!

是否有在线工具、服务、功能/方法、应用程序可以进行这种缩小?

【问题讨论】:

  • 虽然它不是那么先进,但 Google 的 Closure Tools 可以进行积极的缩小。此外,对于较小的 jQuery,您可以查看 Zepto.js
  • Google Closure Compiler 服务closure-compiler.appspot.com/home的相关链接
  • @jqueryrocks:高级缩小实际上可以做到这一点(如果设置正确)。但是,我希望有一个“编译器”可以做类似的事情,但不会删除空格、更改名称等。真的很酷。
  • 这在 Javascript 中是非常困难的,因为语言是如此动态。您的函数a 可以通过一些相当不明显的方式调用。
  • 找点时间做一个重构。然后为了提​​高信心,运​​行你的单元测试:)

标签: javascript jquery performance node.js minify


【解决方案1】:

Google Closure Compiler 是一个 JavaScript 优化器。它是一个有用的工具,可以与其他 Google Closure Tools 结合使用。

您可以将 Closure 编译器用作:

  • 一个可以从命令行运行的开源 Java 应用程序。
  • 一个简单的网络应用程序。
  • 一个 RESTful API。

删除死代码Google Closure Compiler:

使用ADVANCED_OPTIMIZATIONS 编译会删除可证明无法访问的代码。这在与大型库结合使用时特别有用。如果您只使用大型库文件中的几个函数,编译器可以从其输出中删除除这些函数之外的所有内容。

以上段落摘自闭包编译器Docs reference

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-08-29
  • 2016-06-30
  • 1970-01-01
  • 2021-11-28
  • 2014-09-20
  • 1970-01-01
  • 2012-08-14
  • 2017-01-23
相关资源
最近更新 更多