Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用rhino或闭包编译器从java更改javascript变量和函数名_Java_Javascript_Rhino_Google Closure Compiler - Fatal编程技术网

使用rhino或闭包编译器从java更改javascript变量和函数名

使用rhino或闭包编译器从java更改javascript变量和函数名,java,javascript,rhino,google-closure-compiler,Java,Javascript,Rhino,Google Closure Compiler,我希望能够根据特定条件更改javascript文件中的变量和函数名称,然后输出修改后的javascript。这类似于javascript浏览器的功能。 以下是一个例子: 我有这个javascript代码 var something=5; something++; function doSomething(n){ alert(n); } doSomething(something): 现在,我想用somethingElse和doSomethingElse替换somethingElse和do

我希望能够根据特定条件更改javascript文件中的变量和函数名称,然后输出修改后的javascript。这类似于javascript浏览器的功能。 以下是一个例子: 我有这个javascript代码

var something=5;
something++;
function doSomething(n){
   alert(n);
}
doSomething(something):
现在,我想用
somethingElse
doSomethingElse
替换
somethingElse
doSomethingElse
并返回以下javascript代码:

var somethingElse=5;
somethingElse++;
function doSomethingElse(n){
   alert(n);
}
doSomethingElse(somethingElse):
我认为这可以在rhino或google closure compile(基于rhino)中实现,但不知道如何实现。我也愿意接受其他建议


谢谢

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

闭包编译器在技术上可以做到这一点,但并不正式支持定向重命名

以下技术用于增量编译。使用映射文件,编译器会尝试(但不保证)执行先前对变量和属性的重命名。您可以使用以下步骤实现此功能,但不能保证它在所有情况下都能正常工作:

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

步骤2 在编译命令中使用变量重命名

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

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

Rhino只是一个解析器,所以除了在最简单的情况下,它并没有真正的帮助

闭包编译器在技术上可以做到这一点,但并不正式支持定向重命名

以下技术用于增量编译。使用映射文件,编译器会尝试(但不保证)执行先前对变量和属性的重命名。您可以使用以下步骤实现此功能,但不能保证它在所有情况下都能正常工作:

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

步骤2 在编译命令中使用变量重命名

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

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

是你实际的
something
somethingElse
的子字符串吗?@Qantas945不,我只是举了一个简单的例子。如果你真的想做某种缩小,你可以用
blablabla
替换
something
?您能否提供一个更具体、更具体的例子来说明您正在努力实现的目标,以便我们更好地理解您的意图和目标?另外,请说明您实际尝试了什么,以便符合“好问题”的指导原则?没有必要是的,我正在尝试类似于缩小的操作,但我只想根据某些变量(和函数)的值更改它们的名称。我试图做的是某种javascript代码生成器,用户在其中设置一些输入代码,我生成一个类似的代码,但变量名不同(基于某些条件),这是您实际的
somethingElse
的子字符串。@qantas945不,我只是给出了一个简单的示例。如果你真的想做某种缩小,你可以用
blablabla
替换
something
?您能否提供一个更具体、更具体的例子来说明您正在努力实现的目标,以便我们更好地理解您的意图和目标?另外,请说明您实际尝试了什么,以便符合“好问题”的指导原则?没有必要是的,我正在尝试类似于缩小的操作,但我只想根据某些变量(和函数)的值更改它们的名称。我试图做的是某种javascript代码生成器,用户在其中设置一些输入代码,我生成一个类似的代码,但变量名不同(基于某些条件)