我有一个带有全局对象的javascript文件,不能重命名(_gat
来自Google Analytics异步跟踪器)。
Google Closure Compiler不得重命名此对象,因为Google Analytics会查找具有此特定名称的变量。
我查看了提到的Javascript文档符号:http://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到任何关于变量“保护”的内容。
无论我使用简单编码还是高级编译,问题都存在。
如何确保不重命名_gat
变量?
答案 0 :(得分:16)
使用Closure Compiler网络应用,您可以设置js_externs
。有关更多示例,请参阅Advanced Compilation and Externs。
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
答案 1 :(得分:6)
使用base.js中的goog.exportSymbol函数。文档在这里:http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html
用法就像
goog.exportSymbol("_gat", _gat)
答案 2 :(得分:3)
请参阅http://closuretools.blogspot.com/2011/01/property-by-any-other-name-part-1.html关于“所有未加引号”的部分
将某些变量放入''>>> 'bob'阻止编译器重命名它们
答案 3 :(得分:2)
如果它未被声明为您编译的代码的一部分,则外部声明是合适的: http://code.google.com/closure/compiler/docs/api-tutorial3.html#externs