有没有快速工具执行常量替换而不删除JavaScript源代码中的注释?

时间:2011-12-20 22:28:37

标签: node.js compilation javascript

例如,设置MYCONST = true会导致

的转换
 if (MYCONST) {
     console.log('MYCONST IS TRUE!'); // print important message
 }

 if (true) {
     console.log('MYCONST IS TRUE!'); // print important message
 }

此工具理想情况下具有快速node.js可访问API。

5 个答案:

答案 0 :(得分:3)

实现目标的更好方法 -

Settings.js

 settings = {
   MYCONST = true
 };

MainCode.js

 if (settings.MYCONST) {
     console.log('MYCONST IS TRUE!'); // print important message
 }

这样,您可以更改单个文件。

答案 1 :(得分:2)

除了其他方面,google的闭包编译器会在注释时对内联进行内联,留下字符串内容untouched,但我不确定它是否适合您。

答案 2 :(得分:1)

修补美化,例如

答案 3 :(得分:0)

Apache Ant构建系统支持可用于实现此目的的replace task

答案 4 :(得分:0)

修改:哎呀。得先读标题。不理我。

Google Closure Compiler有这样的功能:

您可以将代码中的@define标记与--define参数结合使用,以便在“编译”时更改变量。

闭包编译器也将删除你的if语句,这可能是你想要的。

只需编写如下代码:

/** @define {boolean} */
var MYCONST = false; // default value is necessary here

if (MYCONST) {
    console.log('MYCONST IS TRUE!'); // print important message
}

使用参数:

调用编译器
java -jar closure-compiler.jar --define=MYCONST=true --js pathto/file.js

关于您的API请求:Closure Compiler有一个JSON API