一直在尝试学习如何创建/分发 npm 包,并且我已经编写了我的第一个使用 ResizeObserver API 的库,目前该 API 目前拥有大约 89.6% 的全球支持。
我想捆绑一个包含 resize-observer-polyfill
以及库的文件的文件,以便有人可以将其导入为
import <library-name> from "<library-name>/polyfilled";
我已经使用 TSDX 来生成项目,目前只是传送 index.ts 文件以及 index.d.ts 类型文件。在 index.ts 文件中,有一个内部使用 resize 观察器的函数。
我不确定如何创建设置来处理这个问题,是否可以纯粹通过更改配置来包含它(TSDX 使用 Rollup)或者我是否需要做其他事情,比如动态导入模块,但不确定这在包大小方面如何工作,以及是否会添加到整体库大小中。
// index.js
(async () => {
if (!ResizeObserver in window) {
const module = await import('resize-observer-polyfill');
window.ResizeObserver = module.ResizeObserver
}
}();
// main function exported
export default () => {
function loadResizeObserver() {
const ro = new ResizeObserver((entries) => {
// ...
})
}
}
处理向库中添加 polyfill 的最佳方法是什么。或者我应该只指向 polyfill 供消费者在需要时添加?
答案 0 :(得分:0)
我建议不要在库中包含 pollyfill,因为它会增加您的包的大小。
如果最终用户需要,只需添加可使用 pollyfills 的内容和方式的详细信息,以便需要此支持的开发人员(显然对于旧浏览器)可以非常轻松地添加它。
默认添加会增加大小,并且对于那些关注最新版本浏览器的人来说,这将导致未使用的代码。