Babel.js 为什么要导入“core-js/stable”库?

m1m5dgzv  于 2023-06-27  发布在  Babel
关注(0)|答案(1)|浏览(523)

我正在优化一个react项目。我可以看到使用了“core-js/stable”。最新的浏览器是否仍然需要此软件包?因为大多数浏览器都支持ES6特性。

a8jjtwal

a8jjtwal1#

即使它 * 可能 * 不是当前所需的(如果不查看您的代码,并且确切地知道您想要支持的浏览器的版本,就无法判断),如果开发人员后来在应用程序中使用需要polyfilled的新功能,即使在现代浏览器中也是如此?为了更安全并自动化该过程,建议在入口点之前包含core-js/stable,在项目的browserlist中声明您希望支持的浏览器(查看browserlist playground),并让core-js/stable仅在bundle中包含所需的polyfill(根据caniuse数据库)。当然,请记住,core-js/stable目前可能不支持某些polyfill,需要单独包含。
另一种方法是使用polyfill.io,选择ES6(以及您可能需要的其他polyfill),生成URL并将其包含在head标记的顶部。与core-js/stable相比,优化的优点是它包含了一个基于请求URL的用户代理的polyfill。对于非常现代的浏览器来说,这是一个很好的优势,其中一些浏览器可能会收到polyfill.io0KB polyfills。缺点是它不适用于browserlist,所以你有更多的责任知道你的应用需要什么polyfills,生成正确的polyfill.ioURL,并在每个浏览器支持的最旧版本上测试你的应用。

相关问题