babel-polyfill可以讓我們愉快的使用瀏覽器不兼容的es6、es7的API,但往往項目中只會用到這些API的一部分,一個babel-polyfill壓縮后也有近100k的大小,這確實很恐怖。比如我希望項目里用到Promise,打包時只加載Promise的部分代碼,而非整個polyfill。如何能讓babel-polyfill按需加載呢?
1 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
babel 7 的 @babel/preset-env 的 useBuiltsIns
提供了相對比較完美的解決方案 :
useBuiltIns 默認為 false
根據 browserlist 是否轉換新語法與 polyfill 新 APIfalse : 不啟用polyfill, 如果
import '@babel/polyfill'
, 會無視 browserlist 將所有的 polyfill 加載進來entry : 啟用,需要手動
import '@babel/polyfill'
, 這樣會根據 browserlist 過濾出 需要的polyfill
usage : 不需要手動
import '@babel/polyfill'
(加上也無妨,構造時會去掉), 且會根據 browserlist + 業(yè)務代碼使用到的新 API 按需進行 polyfill
添加回答
舉報
0/150
提交
取消