2017-05-05 1 views
1

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?

Répondre