Je suis en train de réaliser suivant cas d'utilisation:Polyfills partagés dans Google Closure Compiler
- mon code de base est divisé pour 3 fichiers JavaScript: A, B et C
- fichiers B et C dépend à la fois fichier A (ce qui signifie qu'ils sont par exemple appeler des méthodes déclarées dans A)
- tous les fichiers utilisent ES2015 (ES6) Code
J'utilise Google Closure Compiler pour les transpile à ES5 et les rapetisser. Ce qui fonctionne très bien avec la configuration suivante du module NPM 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"
}
}
Mais je voudrais optimiser. La configuration ci-dessus provoque que Closure Compiler 'injecte' le même polyfill aux 3 fichiers si nécessaire (par exemple si A et C utilisent WeakMap, alors Amin et C.min contiennent du polyfill pour WeakMap).
Ma question est, y at-il un moyen de forcer le compilateur à mettre des polyfills communs dans seulement A? Quelque chose comme si B ou C utilisent WeakMap, puis si A utilise WeakMap, mettre polyfill à A. Si A n'utilise pas WeakMap, mettre polyfills à B et C comme d'habitude?