1

我希望能够根据某些条件更改 javascript 文件中的变量和函数名称,然后输出修改后的 javascript。这类似于 javascript minifier 所做的。这是一个例子:我有这个 javascript 代码

var something=5;
something++;
function doSomething(n){
   alert(n);
}
doSomething(something):

现在我想用 and 替换somethinganddoSomethingsomethingElse返回doSomethingElse以下 javascript 代码:

var somethingElse=5;
somethingElse++;
function doSomethingElse(n){
   alert(n);
}
doSomethingElse(somethingElse):

我认为这可以在 rhino 或 google 闭包编译(基于 rhino)中完成,但不知道如何。我也愿意接受其他建议。

谢谢

4

1 回答 1

5

Rhino 只是一个解析器,所以除非在最简单的情况下,它不会真正有帮助。

Closure-compiler 在技术上可以做到这一点,但不正式支持定向重命名。

以下技术用于增量编译。使用映射文件,编译器尝试(但不保证)遵守以前对变量和属性的重命名。您可以使用以下步骤完成这项工作,但不能保证它在所有情况下都有效:

步骤1

使用以下语法创建变量映射文件(每行一个条目)

varname:renamedname

第2步

使用变量重命名作为编译命令的一部分

java -jar compiler.jar --js inputfile.js \
  --variable_map_input_file varrenaming.txt

请注意,所有正常的重命名规则仍然适用。如果一个变量以前没有被重命名,这不会导致它现在被重命名。

于 2013-10-24T13:14:30.560 回答