如何告诉Google Closure删除未使用的变量初始化?

时间:2013-09-20 19:28:15

标签: google-closure-compiler google-closure

我的代码由几个文件组成,初始化时可能会覆盖默认值。默认情况下,Google Closure Compiler将继续使用默认值进行初始化,尽管从未使用过。是否有等价@nosideeffects,以便删除第一个变量定义。

以下是一个例子:

var a = 1;
a = 2;
window.console.log(a);

将编译成(在高级模式下):

var a=1,a=2;window.console.log(a);

在我的情况下,默认值是一个非常长的字符串,我觉得值得找一种方法告诉编译器只保留最新的。

1 个答案:

答案 0 :(得分:1)

Closure Compiler有几个只在函数体内运行的优化(因为它们在大型项目上运行太昂贵):“流敏感内联”是你想要的。在简单模式中,这个:

function f() {
  var a = 1;
  a = 2;
  window.console.log(a);
}

变为:

function f() {
  window.console.log(2);
}

除了不将代码放在全局范围内之外,您无需执行任何操作。