有没有工具删除javascript中未使用的方法?

Ala*_*lan 38 javascript

我收集了第三方的javascript文件集合,我想删除所有未使用的方法,以便将大小降低到更合理的水平.

有没有人知道为Javascript执行此操作的工具?至少给出一个未使用/使用过的方法列表,这样我就可以进行手动修剪?这将是运行类似YUI Javascript压缩器工具的补充...

否则我的想法是编写一个perl脚本来尝试帮助我这样做.

Tri*_*ych 35

不可以.因为您可以像这样以疯狂的动态方式"使用"方法.

obj[prompt("Gimme a method name.")]();
Run Code Online (Sandbox Code Playgroud)

  • 我将开始在我的所有项目中使用此方法. (27认同)
  • 除了示例和其他用户生成/随机生成的方法,你不能减少文件? (6认同)
  • 令人讨厌的*真棒*,你的意思是. (4认同)
  • 这个答案很好地说明了它有多困难,但答案是100%错误的.对于每个人说没有办法确定运行哪些功能......你需要运用你的想象力.追踪已经存在很长一段时间了,而且这种可能性很大.仅仅因为某种语言尚不存在,并不意味着它是不可能的或永远不可用的.这个答案很简短,缺乏很多可能有用的信息. (4认同)

fos*_*son 19

看看JSCoverage.生成代码覆盖率统计信息,显示程序的哪些行已执行(以及哪些行已被遗漏).


lfe*_*445 6

我想删除所有未使用的方法,以使大小降低到更合理的水平.

有几种工具可用:

npm install -g fixmyjs
fixmyjs <filename or folder>
Run Code Online (Sandbox Code Playgroud)

一个可配置模块,它使用JSHint(Github,docs)来标记未使用的函数并执行清理.

我不确定它是否会删除undefined函数而不是标记它们.虽然它是一个很好的清理工具,但似乎缺乏与更高版本的ECMAScript的兼容性(更多信息如下).

还有谷歌闭包编译器声称删除死JS,但这更像是一个构建工具.

更新

如果您正在使用像Babel这样的东西,请考虑将ESLint添加到文本编辑器中,这可以触发对未使用的方法甚至变量的警告,并且具有--fix用于自动修复某些错误和样式问题的CLI选项.

我喜欢ESLint,因为它包含多个备用库的插件(如果你缺少一个道具,就像React警告一样),允许你提前捕获bug.他们拥有坚实的生态系统.

举个例子:在我的NodeJS项目中,我使用的配置是基于Airbnb风格指南.