Verhindern, dass der Verschluss Compiler bestimmte Variablen umbenannt
-
26-09-2019 - |
Frage
Ich habe eine JavaScript -Datei mit einem globalen Objekt, das nicht umbenannt werden darf (_gat
vom Google Analytics Async Tracker).
Dieses Objekt darf nicht vom Google Closure Compiler umbenannt werden, da Google Analytics mit diesem spezifischen Namen nach einer Variablen sucht.
Ich habe mich mit den erwähnten JavaScript -DOC -Notationen befasst: http://code.google.com/closure/compiler/docs/js-for-compiler.html - Ich kann jedoch nichts über den "Schutz" einer Variablen finden.
Das Problem besteht, egal ob ich eine einfache oder erweiterte Zusammenstellung verwende.
Wie kann ich sicherstellen, dass die _gat
Variable wird nicht umbenannt?
Lösung
Verwendung Verschluss Compiler Web -App können Sie festlegen js_externs
. Beziehen auf Fortgeschrittene Zusammenstellung und EXTERNS Weitere Beispiele.
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @js_externs _gat
// ==/ClosureCompiler==
Andere Tipps
Verwenden Sie die Funktion toge.exportsymbol von base.js. Dokumentation ist hier: http://clous-library.googlecode.com/svn/docs/clous_goog_base.js.html
Verwendung ist wie
goog.exportSymbol("_gat", _gat)
Sehen http://closuretools.blogspot.com/2011/01/property-by-any-other-name-tml der Teil über "alle nicht zeigten"
Das Einlegen bestimmter Vars in '' '>>>' Bob 'verhindert, dass sie vom Compiler umbenannt werden
Wenn es nicht als Teil des Code deklariert wird, den Sie zusammenstellen, ist eine externe Erklärung angemessen:http://code.google.com/closure/compiler/docs/api-tutorial3.html#externs