繁体   English   中英

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

[英]Preventing closure compiler from renaming certain variables

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

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

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

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

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

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

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

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

用法就像

goog.exportSymbol("_gat", _gat)

请参阅http://closuretools.blogspot.com/2011/01/property-by-any-other-name-part-1.html关于“所有未引用的”部分

将某些变量置于''>>>'bob'中可防止它们被编译器重命名

如果它未被声明为您编译的代码的一部分,则外部声明是合适的: http//code.google.com/closure/compiler/docs/api-tutorial3.html#externs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM