背景
最近在项目开发中遇到一个 npm包的一些 bug,但是这个 npm包的作者并没有修复,联系不上作者。 相信大家在开发中或多或少遇到过,我们正常的解决方案是修改这个 npm包的代码,然后重新发布一个 npm包,但是这样会带来一些问题,比如:
- 重新发布npm包,后续这个 npm包所有更新我们都无法获取,因为 npm包变成是我们自己私有的
经过网络搜索,发现了一个 npm包,叫做 patch-package
,可以更加优雅的解决这个问题,所以记录一下。
patch-package 解决方案
我们先简单了解一下这个patch-package
的主要作用:
立刻修复 npm 包的 bug,而无需修改其源代码 - patch-package
使用步骤如下:
1 | # fix a bug in one of your dependencies |
同时需要修改 package.json,添加如下配置:
1 | "scripts": { |
还需要安装patch-package
依赖,方便使用。
1 | npm i patch-package --save-dev |
后续安装依赖时,会自动执行patch-package
,将node_modules
中的文件替换为patches
中的文件。
背后原理
既然解决了问题,那么patch-package
是如何实现的呢?
其实原理相对简单,npm的有个机制叫做
npm的postinstall
参考资料
- 本文作者: Qborfy
- 本文链接: https://www.qborfy.com/today_2024/20240613.html
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!