【发布时间】:2019-10-06 20:43:08
【问题描述】:
像 polyfill.io 这样的 Polyfill 服务似乎只向浏览器提供小功能检测,然后只延迟加载实际需要的 polyfill。
据我了解babel documentation on polyfilling,babel 总是包含一整套可能需要的 polyfill:它将处理 browserslist,然后包含最弱浏览器需要的 core-js 中的那些 polyfill。然后像 webpack 这样的打包器可能会将所有这些 polyfill 合并到应用程序中,但不会检测运行时特性。
我的应用程序使用现代 ES 语言功能,但也针对各种浏览器,包括 IE10 和 IE11。这需要大量的 polyfill,并且可能会使包膨胀,尤其是对于可能不需要大部分 polyfill 的现代浏览器。
所以我想知道:我可以告诉 babel 和/或 webpack 只包含功能检测,将 polyfill 拆分为单独的块(单独或分成小包),然后在运行时只“延迟”加载实际需要什么?
【问题讨论】:
标签: lazy-loading babeljs feature-detection polyfills core-js