14

我有一个JavaScript文件,不能重命名全局对象(来自Google Analytics(分析)异步跟踪器的_gat)。防止重命名某些变量的闭包编译器

Google Analytics搜索具有此特定名称的变量时,不得将该对象重命名为Google Closure Compiler。

我查看过提到的Javascript Doc标记:http://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到任何关于变量“保护”的内容。

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

如何确保_gat变量未被重命名?

回答

16

使用Closure Compiler Web应用程序,你可以设置js_externs。更多示例请参阅Advanced Compilation and Externs

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

它仍然在变化 – 2013-08-19 16:19:55

6

使用base.js中的goog.exportSymbol函数。文档是在这里:http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html

用法是一样

goog.exportSymbol("_gat", _gat) 
+0

你能详细说说有点请?我在哪里可以找到更多信息? – phidah 2010-06-11 20:14:15

+0

(对不起,最初的答复,是从我的手机回复,我的屏幕键盘功能很弱)。 – 2010-06-13 00:37:14

3

http://closuretools.blogspot.com/2011/01/property-by-any-other-name-part-1.html关于“所有非上市”

把某些瓦尔内“” >>>“鲍勃”的部分阻止他们由编译器更名

+1

这是一个有趣的选项。即使在执行ADVANCED_OPTIMIZATIONS时,Closure也不会将字符串引用重命名为方法。例如,如果引用如下,它将不会重命名window.foo:window ['foo'] – 2012-09-20 17:03:30

相关问题