我希望能够根据特定条件更改 javascript 文件中的变量和函数名称,然后输出修改后的 javascript。这类似于 javascript 缩小器所做的。 这是一个例子: 我有这个 javascript 代码
var something=5;
something++;
function doSomething(n){
alert(n);
}
doSomething(something):
现在我想用 somethingElse
和 doSomethingElse
替换 something
和 doSomething
并返回以下 javascript 代码:
var somethingElse=5;
somethingElse++;
function doSomethingElse(n){
alert(n);
}
doSomethingElse(somethingElse):
我认为这可以在 rhino 或 google closure compile(基于 rhino)中完成,但不知道如何。我也乐于接受其他建议。
谢谢
最佳答案
Rhino 只是一个解析器,所以除非在最简单的情况下,否则它不会真正提供帮助。
Closure-compiler 技术上可以做到这一点,但官方不支持定向重命名。
以下技术用于增量编译。使用映射文件,编译器会尝试(但不保证)遵守先前对变量和属性的重命名。您可能使用以下步骤完成这项工作,但不能保证它在所有情况下都有效:
第一步
使用以下语法创建一个变量映射文件(每行一个条目)
varname:renamedname
第二步
使用变量重命名作为编译命令的一部分
java -jar compiler.jar --js inputfile.js \
--variable_map_input_file varrenaming.txt
请注意,所有正常的重命名规则仍然适用。如果一个变量之前没有重命名,这不会导致它现在被重命名。
关于java - 使用 rhino 或闭包编译器从 java 更改 javascript 变量和函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19491592/