我的代码由几个文件组成,初始化时可能会覆盖默认值。默认情况下,Google Closure Compiler将继续使用默认值进行初始化,尽管从未使用过。是否有等价@nosideeffects
,以便删除第一个变量定义。
以下是一个例子:
var a = 1;
a = 2;
window.console.log(a);
将编译成(在高级模式下):
var a=1,a=2;window.console.log(a);
在我的情况下,默认值是一个非常长的字符串,我觉得值得找一种方法告诉编译器只保留最新的。
答案 0 :(得分:1)
Closure Compiler有几个只在函数体内运行的优化(因为它们在大型项目上运行太昂贵):“流敏感内联”是你想要的。在简单模式中,这个:
function f() {
var a = 1;
a = 2;
window.console.log(a);
}
变为:
function f() {
window.console.log(2);
}
除了不将代码放在全局范围内之外,您无需执行任何操作。