Препятствование тому, чтобы компилятор закрытия переименовал определенные переменные

У меня есть файл JavaScript с глобальным объектом, который не должен быть переименован (_gat от Google Analytics асинхронное средство отслеживания).

Этот объект не должен быть переименован Google Closure Compiler, поскольку Google Analytics ищет переменную с этим собственным именем.

Я изучил нотации Документа JavaScript, которые упоминаются: http://code.google.com/closure/compiler/docs/js-for-compiler.html - Однако я ничего не могу найти относительно "защиты" переменной.

Проблема существует, неважно, если я использую простую или усовершенствованную компиляцию.

Как я могу удостовериться что _gat переменная не переименована?

15
задан phidah 11 June 2010 в 20:00
поделиться

3 ответа

Используя веб-приложение Closure Compiler , вы можете установить js_externs . Дополнительные примеры см. В Advanced Compilation and Externs .

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
16
ответ дан 1 December 2019 в 02:37
поделиться

Используйте функцию goog.exportSymbol из base.js. Документация здесь: http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html

Usage is like

goog.exportSymbol("_gat", _gat)
6
ответ дан 1 December 2019 в 02:37
поделиться

Если он не объявлен как часть компилируемого кода, то уместно объявление extern: http://code.google.com/closure/compiler/docs/api-tutorial3.html#externs

2
ответ дан 1 December 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: