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