通过 JavaScript minifier 重命名的统计信息
Statistics on renaming via JavaScript minifier
我不熟悉 JavaScript 的缩小。这是问题的设置:
假设我们有一个原始的 JavaScript 代码 A 和它的缩小代码 A'(由 UglifyJS 或 Closure Compiler 等缩小器生成),我如何:
统计重命名的变量个数,
将每个变量的原始名称映射到它的缩小名称
欢迎详细说明,有工具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/
我不熟悉 JavaScript 的缩小。这是问题的设置:
假设我们有一个原始的 JavaScript 代码 A 和它的缩小代码 A'(由 UglifyJS 或 Closure Compiler 等缩小器生成),我如何:
统计重命名的变量个数,
将每个变量的原始名称映射到它的缩小名称
欢迎详细说明,有工具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/