如何给第三方库打补丁?

解决问题:

        下载的某个包有问题,只需要改少量的代码就可以正常运行

        比如要兼容浏览器,把 Buffer 改成 Uint8Array 之类的。

        又比如,库里的逗号多了一个,导致报错,库的作者发布要到几天之后,我要直接改库使用

==================

这几天我遇到这样一个问题,开发的包是非严格模式写的, 我用vite 打包的时候,他会报错说我的语法有问题。

究其原因是,Vite 无法处理、也不支持仅可在非严格模式(sloppy mode)下运行的代码。这是因为 Vite 使用了 ESM 并且始终在 ESM 中使用 严格模式

所以出现了我必须要改一下库里的某些代码的语法才能继续 build 成功,但是因为我们是多人协作,每次发布的时候,大家都要去库里改一下代码,哇塞,真是麻烦到爆炸以至于要提个 issue 给库的作者,但是发现该库已经发布好几年了,算是一个成熟稳定的库,根本没有人因为这个原因再去改这里的代码了。

所以呢,我就找解决方法。发现了 patch-package 这个包。

它的解释是这样的:patch-package lets app authors instantly make and keep fixes to npm dependencies. It's a vital band-aid for those of us living on the bleeding edge.

而 yarn  v2 自带 patch,真是爽歪歪,查看文档,用法如下(如果不是yarn,请查看https://github.com/ds300/patch-package 找解决方法) 

如果想用 yarn v2 版本的,切换

yarn set version stable

然后执行

yarn patch <package>
// 出现 You can now edit the following folder: /xx/xx/xx
// 点击文件目录,打开项目,并修改你要修改的地方
// 然后执行 yarn patch-commit -s /xx/xx/xx(命令行应该有,直接复制)
// 复制执行,这段命令是让你把库关联到某个临时目录

之后 package.json 里就会有一个关联的  resolutions

这里路径里的文件,告诉下载了某个包之后该如何补丁,需要上传到 git 仓库,这样大家就不需要每次都改那个库里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值