通过 JavaScript minifier 重命名的统计信息

Statistics on renaming via JavaScript minifier

我不熟悉 JavaScript 的缩小。这是问题的设置:

假设我们有一个原始的 JavaScript 代码 A 和它的缩小代码 A'(由 UglifyJS 或 Closure Compiler 等缩小器生成),我如何:

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

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

欢迎详细说明,有工具UglifyJS或Closure Compiler会更好:)

有两种方法:

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

2) Closure 编译器和其他工具生成源映射。 source map可以用来把每一个字节映射回原来的字符。

对于第二个,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/