I have a javascript file with a global object that must not be renamed (_gat
from the Google Analytics async tracker).
This object must not be renamed by the Google Closure Compiler as Google Analytics looks for a variable with this specific name.
I've looked into the Javascript Doc notations that are mentioned: http://code.google.com/closure/compiler/docs/js-for-compiler.html - However, I cannot find anything regarding the "protection" of a variable.
The problem exists no matter if I use simple or advanced compilation.
How can I ensure that the _gat
variable is not renamed?
Using Closure Compiler web app, you can set js_externs
. Refer to Advanced Compilation and Externs for more examples.
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
Use the goog.exportSymbol function from base.js. Documentation is here: http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html
Usage is like
goog.exportSymbol("_gat", _gat)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With