我正在优化一个 React 项目。我可以看到使用了“core-js/stable”。最新的浏览器还需要这个包吗?因为大多数浏览器都支持 ES6 功能。
即使当前可能不需要它(如果不查看代码并准确了解您想要支持的浏览器版本,就无法判断),如果开发人员稍后在应用程序中使用新功能,该怎么办?即使在现代浏览器中也需要进行多填充?为了更安全并自动化该过程,建议在入口点之前包含 core-js/stable
,在项目的
browserlist
中声明您想要支持的浏览器(查看 browserlist Playground),然后让
core-js/stable
仅在捆绑包中包含所需的 polyfill(根据 caniuse数据库)。当然,请记住,
core-js/stable
目前可能不支持某些polyfill,需要单独包含。另一种方法可能是使用 Cloudflare
上托管的 polyfill 服务,选择
ES6
(以及您可能需要的其他 polyfill),生成 URL
并将其包含在 head
标签的顶部。与 core-js/stable
相比,优化优势在于它根据请求 URL
的用户代理有条件地包含一个 polyfill。对于非常现代的浏览器来说这是一个很好的优势,其中一些浏览器可能会通过 0KB
获得 https://cdnjs.cloudflare.com/polyfill/
的 polyfill。缺点是它不能与 browserlist
一起使用,因此您更有责任了解您的应用程序需要什么 polyfill,生成正确的 polyfill 服务
URL
,并在您想要的最旧版本上测试您的应用程序支持每个浏览器。