防止Closure Compiler重命名特定变量。

16

我有一个JavaScript文件,其中包含一个全局对象,这个对象不得重命名(来自Google Analytics异步跟踪器的_gat)。

由于Google Analytics寻找具有特定名称的变量,因此不得重命名此对象。

我研究了所提到的Javascript Doc注释:http://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到有关“保护”变量的内容。

无论我使用简单编译还是高级编译,问题都存在。

我该如何确保_gat变量不被重命名?

4个回答

16

通过 Closure Compiler 网页应用程序,您可以设置js_externs。请参考高级编译和外部引用了解更多示例。

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==

6

请您能详细说明一下吗?我在哪里可以找到更多的信息呢? - phidah
抱歉我的初始回复很简短,我当时是用手机回复的,我的屏幕键盘技能不太好。 - Moishe Lettvin

3

1
这是一个有趣的选项。即使在执行高级优化时,Closure也不会将字符串引用重命名为方法。例如,如果像这样引用window.foo:window ['foo'],它不会将其重命名。 - Noah Sussman

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接