我们不建议在文件的开头使用import '@babel/polyfill'
。因为这样左的缺点是会全局引入整个 polyfill 包,比如 Array.from 会全局引入,不但包的体积大,而且还会污染全局环境。
babel-preset-env
这个包通过browserslist
来转译哪些浏览器中不支持的特性。这个preset
使用useBuiltIns
选项,默认为false
,这种方式可以将全局babel-polyfill
导入,改进为更细粒度的import
格式。
需要下载
babel-loader
@babel/core
@babel/preset-env
core-js@3
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
targets : [
'last 1 version',
'> 1%'
],
useBuiltIns: 'usage',
corejs: 3
}
]
]
}
}
}
]
}
}