【发布时间】:2017-11-18 22:39:13
【问题描述】:
我的一个 Vue.js 插件提出了一个问题,要求在 IE10 的插件中为 Object.assign 捆绑一个 polyfill。我想知道这对于此类事情是否通常是最佳实践。
这很简单,但会在具有本机支持的浏览器的插件中增加不必要的开销。由实现来要求这样的 polyfill 是否更好?
【问题讨论】:
标签: javascript plugins babeljs polyfills
我的一个 Vue.js 插件提出了一个问题,要求在 IE10 的插件中为 Object.assign 捆绑一个 polyfill。我想知道这对于此类事情是否通常是最佳实践。
这很简单,但会在具有本机支持的浏览器的插件中增加不必要的开销。由实现来要求这样的 polyfill 是否更好?
【问题讨论】:
标签: javascript plugins babeljs polyfills
在我看来,您不应该在发布插件时提供超出运行所需的任何内容。仅仅因为一个用户的应用需要 IE10 支持,并不意味着每个用户的都需要。
我能看到的唯一包含 polyfill 的情况是,如果 Vue 本身对支持 IE10 采取强硬立场,从而产生了 Vue 插件也遵循这一点的期望。但是,在大多数情况下,如果您的插件的用户需要一个 polyfill,那么他们应该没有任何理由不能自己将它添加到他们的项目中。
关于您对本机支持的浏览器中的 polyfill 的评论,通常最好的做法是在应用 polyfill 之前检查浏览器是否具有本机支持,因此除非需要,否则插件不会执行任何操作。示例:
if (typeof Object.assign !== 'function') {
Object.assign = myPolyfill
}
【讨论】: