ich folgenden Anwendungsfall zu erreichen bin versucht:Geteilt Polyfills in Google Closure Compiler
- meine Code-Basis ist gespalten 3 JavaScript-Dateien: A, B und C
- Dateien B und C beide auf Datei hängen A (das heißt, sie sind zB Methoden in A erklärt Aufruf)
- alle Dateien verwenden ES2015 (ES6) -Code
ich verwende Google Closure Compiler sie ES5 transpile und minify sie. Welche arbeitet mit folgenden Konfiguration von NPM-Modul Fein google-closure-compiler
:
default: {
files: {
"A.min.js" : "A.js",
"B.min.js" : "B.js",
"C.min.js" : "C.js",
},
options: {
compilation_level: "SIMPLE",
language_in: "ES6_STRICT",
language_out: "ES5_STRICT"
}
}
Aber ich mag es optimieren. Die obige Konfiguration bewirkt, dass der Closure-Compiler das gleiche Polyfill in alle 3 Dateien einfügt, wo dies erforderlich ist (z. B. wenn A und C WeakMap verwenden, dann enthalten sowohl A.min als auch C.min Polyfill für WeakMap).
Meine Frage ist, gibt es eine Möglichkeit, den Compiler zu zwingen, allgemeine Polyfills nur in A zu setzen? So wie wenn B oder C WeakMap verwenden, dann wenn A WeakMap verwendet, lege polyfill auf A. Wenn A WeakMap nicht verwendet, lege Polyfills wie üblich auf B und C.