У меня есть файл JavaScript с глобальным объектом, который не должен быть переименован (_gat
от Google Analytics асинхронное средство отслеживания).
Этот объект не должен быть переименован Google Closure Compiler, поскольку Google Analytics ищет переменную с этим собственным именем.
Я изучил нотации Документа JavaScript, которые упоминаются: http://code.google.com/closure/compiler/docs/js-for-compiler.html - Однако я ничего не могу найти относительно "защиты" переменной.
Проблема существует, неважно, если я использую простую или усовершенствованную компиляцию.
Как я могу удостовериться что _gat
переменная не переименована?
Используя веб-приложение Closure Compiler , вы можете установить js_externs
. Дополнительные примеры см. В Advanced Compilation and Externs .
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
Используйте функцию goog.exportSymbol из base.js. Документация здесь: http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html
Usage is like
goog.exportSymbol("_gat", _gat)
Если он не объявлен как часть компилируемого кода, то уместно объявление extern: http://code.google.com/closure/compiler/docs/api-tutorial3.html#externs