Dou*_*eri 1 javascript java rhino google-closure-compiler
我希望能够根据某些条件更改javascript文件中的变量和函数名称,然后输出修改后的javascript.这类似于javascript minifier的功能.这是一个例子:我有这个javascript代码
var something=5;
something++;
function doSomething(n){
alert(n);
}
doSomething(something):
Run Code Online (Sandbox Code Playgroud)
现在我想更换something,并doSomething用somethingElse和doSomethingElse,并返回下面的JavaScript代码:
var somethingElse=5;
somethingElse++;
function doSomethingElse(n){
alert(n);
}
doSomethingElse(somethingElse):
Run Code Online (Sandbox Code Playgroud)
我认为这可以在rhino或google closure编译(基于rhino)中完成,但不知道如何.我也对其他建议持开放态度.
谢谢
Rhino只是一个解析器,所以除了最简单的情况之外它不会真正有用.
Closure-compiler在技术上可以做到这一点,但不官方支持定向重命名.
以下技术用于增量编译.使用映射文件,编译器尝试(但不保证)兑现以前的变量和属性重命名.您可以使用以下步骤完成此工作,但无法保证它在所有情况下都能正常工作:
使用以下语法创建变量映射文件(每行一个条目)
varname:renamedname
Run Code Online (Sandbox Code Playgroud)
使用变量重命名作为编译命令的一部分
java -jar compiler.jar --js inputfile.js \
--variable_map_input_file varrenaming.txt
Run Code Online (Sandbox Code Playgroud)
请注意,所有正常的重命名规则仍然适用.如果先前未重命名变量,则不会导致现在重命名该变量.
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |