2017-05-05 77 views
1

我试图实现以下用例:共享Polyfills在谷歌关闭编译

  • 我的代码库被分成3个JavaScript文件:A,B和C
  • 文件B和C都依赖于文件A(意味着它们例如调用一个声明的方法)
  • 所有文件都使用ES2015(ES6)代码

我使用谷歌关闭编译器将它们transpile到ES5和它们最小化。这正常工作与以下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" 
      } 
     } 

但我想优化。上面的配置会导致Closure Compiler向所有需要的3个文件注入相同的polyfill(例如,如果A和C使用WeakMap,则A.min和C.min都包含WeakMap的polyfill)。

我的问题是,有没有办法强制编译器只在A中使用通用的polyfill?如果B或C正在使用WeakMap,那么如果A使用WeakMap,则将polyfill放置到A.如果A没有使用WeakMap,请像往常一样将polyfills添加到B和C中?

回答