这一切都在标题中,真的.
在Babel文档中,page describing babel-runtime有以下一行
Another purpose of this transformer is to create a sandboxed environment for your code. Built-ins such as Promise,Set and Map are aliased to core-js so you can use them seamlessly without having to require a globally polluting 07001.
polyfill就是这样,一个单独的JavaScript文件,其中包含一些丢失的东西.
我已经使用我的构建工具(webpack)测试了polyfill与使用babel-runtime,当我使用babel-runtime时,我的文件略小.
我不是开发一个图书馆或插件,只是一个Web应用程序,也不关心被污染的全球范围.知道这一点,除了稍微更小的最终文件大小之外,在polyfill中使用运行时还有其他实际的好处或要点吗?
解决方法
如果您不关心污染全局范围,则polyfill是更好的选择:运行时不适用于例如[0,1,2] .includes(1)的实例方法,而polyfill会.
两者之间的主要区别在于,polyfill会污染全局范围,并使用实例方法,而运行时不会污染全局范围,并且不适用于实例方法.
polyfill也不允许您在代码中包含两个独立的版本.这只是一个问题,如果在您的代码中的某个地方需要/导入两个单独的聚合物.