前言
上周看到别人分享的文章,patch-package
可以给项目下的 npm 包打补丁。这样我们就可以无需给 npm 提 issues 了,甚至有些包已经不再维护了(无需 fork 修改)。
安装
1 | npm i patch-package --save-dev |
修改 npm 源文件
找到 node_modules/文件夹下的包
然后修改你需要调整的内容。
打补丁
在修改依赖包内容后,就可以运行 patch-package 创建 patch 文件了
1 | npx patch-package package-name # 使用npm |
运行后通常会在项目根目录下的 patches 目录中创建一个名为 package-name+version.patch 的文件。将该 patch 文件提交至版本控制中,即可在之后应用该补丁了
部署
最后还需要修改 package.json 的内容,在 scripts 中加入”postinstall”: “patch-package”。
1 | "scripts": { |
后续运行 npm install 或是 yarn install 命令时,便会自动为依赖包打上我们编写的补丁了
后记
我的项目改的 @femessage/update-popup
,这个包是做版本发布提示用的,但是我们不想每次手动更改版本,只根据 git tag 同步就可以了。正好碰到这个 npm 组件。打了补丁后,只需要 Jenkins 获取 git tag 信息就可以直接更新版本