对于 Babel 版本 7,如果您使用的是 @babel/preset-env,要包含 polyfill,您所要做的就是在您的 babel 配置中添加一个值为 'usage' 的标志 'useBuiltIns'。无需在应用程序的入口点要求或导入 polyfill。
指定此标志后,babel@7 将优化并仅包含您需要的 polyfill。
要使用此标志,安装后:
npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill
只需添加标志:
useBuiltIns: "usage"
添加到名为“babel.config.js”的 babel 配置文件(也是 Babel@7 的新功能),在“@babel/env”部分下:
// file: babel.config.js
module.exports = () => {
const presets = [
[
"@babel/env",
{
targets: { /* your targeted browser */ },
useBuiltIns: "usage" // <-----------------*** add this
}
]
];
return { presets };
};
参考:
2019 年 8 月更新:
随着 Babel 7.4.0(2019 年 3 月 19 日)的发布,@babel/polyfill 已被弃用。您将安装 core-js,而不是安装 @babe/polyfill:
npm install --save core-js@3
一个新条目corejs
被添加到你的 babel.config.js
// file: babel.config.js
module.exports = () => {
const presets = [
[
"@babel/env",
{
targets: { /* your targeted browser */ },
useBuiltIns: "usage",
corejs: 3 // <----- specify version of corejs used
}
]
];
return { presets };
};
参见示例:https ://github.com/ApolloTang/stackoverflow-eg--babel-v7.4.0-polyfill-w-core-v3
参考: