【问题标题】:Statistics on renaming via JavaScript minifier通过 JavaScript minifier 重命名的统计信息
【发布时间】:2015-06-20 00:51:26
【问题描述】:

我是 JavaScript 缩小的新手。这是问题的设置:

假设我们有一个原始的 JavaScript 代码 A 和它的缩小代码 A'(由像 UglifyJS 或 Closure Compiler 这样的缩小器生成),我该怎么做:

  1. 统计被重命名的变量个数,

  2. 将每个变量的原始名称映射到其缩小后的名称

欢迎任何详细说明,使用工具 UglifyJS 或 Closure Compiler 会更好:)

【问题讨论】:

  • 你可能想要一个能生成sourceMap的压缩器。
  • 你能澄清一下你的实际目标是什么吗?
  • @jfriend00 我确实生成了 sourceMap 文件。但是很难理解其中的映射。你能提供一些细节吗?谢谢!
  • @JethroLarson 我的目标是计算在缩小过程中有多少变量受到影响,因为有些变量可能不会被重命名。
  • 由于 sourceMap 的目的是将最小化的代码(包括变量名)映射回原始源,因此您想要的所有信息似乎都在其中。我个人不知道文件格式。您将不得不做一些研究,以了解有关它的内容。这是some documatationGoogle 写的。

标签: javascript minify google-closure-compiler uglifyjs


【解决方案1】:

有两种方法:

1) 闭包编译器可以为属性和变量生成一个“重命名映射”。该地图不包括未重命名的变量,因此您仍有一些工作要做。请参阅 --variable_renaming_report 命令行选项https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/CommandLineRunner.java#L215

2) Closure Compiler 和其他工具生成源映射。源映射可用于将原始中的每个字节映射回原始字符。

第二个 Closure Compiler 项目包含一个用于读取源映射的 Java 库: https://github.com/google/closure-compiler/blob/master/src/com/google/debugging/sourcemap/SourceMapConsumerV3.java#L225

还存在 javascript 源映射实用程序: https://github.com/mozilla/source-map/

【讨论】:

  • 谢谢!使用 source-map 库可以方便地将缩小的代码映射回原始源:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多