防止闭包编译器重命名某些变量

phi*_*dah 15 javascript compression google-closure google-closure-compiler

我有一个带有全局对象的javascript文件,不能重命名(_gat来自Google Analytics异步跟踪器).

Google Closure编译器不得重命名此对象,因为Google Analytics会查找具有此特定名称的变量.

我查看了提到的Javascript文档符号:http://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到有关"保护"的任何内容变量.

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

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

Kev*_*son 16

使用Closure Compiler Web应用程序,您可以设置js_externs.有关更多示例,请参阅高级编译和外部.

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
Run Code Online (Sandbox Code Playgroud)


Moi*_*vin 6

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

用法就像

goog.exportSymbol("_gat", _gat)
Run Code Online (Sandbox Code Playgroud)