用户谷歌浏览器的主流版本是65.0,可以支持ES Module,但是后续的API支持需要Polyfill。所以我们的babel配置需要做到针对对应浏览器版本引入polyfill而不是全部引入,有利于缩减chunk体积。
babel.config.js
module.exports = {
presets: [
"@babel/preset-env",
{
targets:{
chrome:"65",
},
useBuiltIns:"usage", //usage 按需引入 entry 只在入口引入一次 false 不使用polyfill
shippedProposals:true, //是否转换浏览器已经支持的语法
modules:false, //默认值,不指定模块化类型
corejs:{
version:"3.20",
proposals:true,
}
}
],
plugins:[
"@babel/syntax-dynamic-import",
["@babel/plugin-transform-runtime",{ corejs:false,regenerate: false }],
]
}