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中?