2017-05-05 5 views
1

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.

Antwort

Verwandte Themen