我正在做一个网络项目,使用 Babel 7和 Webpack 4。我以前从来没有用过巴别塔,有些地方我真的看不懂。基于 文件我正在使用 @babel/preset-env
,因为它似乎是推荐的方式(特别是对于初学者)。也通过我的 .browserslistrc
文件使用 Browserslist 集成。
Webpack 编译得很好(babel-loader
版本 8.0.2
) ,我没有错误,但我对这个 useBuiltIns: "entry"
这里提到的选项和 polyfill
系统是如何在 Babel 工作感到困惑。
. babelrc.js
module.exports = {
presets: [
['@babel/preset-env', {
"useBuiltIns": "entry" // do I need this?
}]
],
plugins: [
'@babel/plugin-syntax-dynamic-import'
]
};
。浏览器
从 给你复制(认为合理,因为我的项目正在使用 Bootstrap)。
>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30
所以我的问题是:
1)我是否需要使用 useBuiltIns: "entry"
选项?
2)我是否需要安装 @babel/polyfill
软件包并以 require("@babel/polyfill");
开始我的 vendors.js
?
3)如果我两个都省略了呢?
如果我做1和2,我的 vendors.js
长到 411 KB
如果两个都省略,那就是 341 KB
在生产完成之后。
我认为 @babel/preset-env
处理所有的重写和填充默认没有任何额外的 import/require
需要在我这边..。
谢谢!
编辑
Babel 的团队刚刚基于一些 GitHub 问题(包括我的问题)发布了 更新和 @babel/polyfill
的文件,抱怨文档不清晰/误导。现在怎么用已经很明显了。(... 在那之后,我最初的问题似乎很愚蠢:)