pnpm patch 修补第三方依赖
大约 1 分钟
pnpm patch 修补第三方依赖
我们开发过程中常常会遇到第三方依赖有 bug 的情况,这时我们可以使用 pnpm patch 来打补丁修复。
pnpm patch
比如,在使用 element plus 时,发现了一个 bug。首先我们需要知道正在使用的 element plus 版本,这里以 2.3.4 为例, 然后使用如下命令
pnpm patch element-plus@2.3.4
这时会出现一个临时目录,该目录可以通过 --edit-dir
来指定。
pnpm patch-commit
然后可以在这个目录下进行修改,修改完成后使用 pnpm patch-commit xxx
来提交修改内容, xxx
为pnpm patch
命令生成的临时目录。
pnpm patch-commit '/private/var/folders/jk/p594c5rx703869x65cm6z4jw0000gn/T/db6b81df8ed3e3fa87216d5e0532a8dd'
之后会在项目根目录下生成一个patches文件夹,里面是生成的patch文件。
同时会在package.json
中添加一条记录
"pnpm": {
"patchedDependencies": {
"element-plus@2.3.4": "patches/element-plus@2.3.4.patch"
}
}
pnpm patch-remove
如果作者修复了这个bug, 可以使用 pnpm patch-remove
来撤销修补。
pnpm patch-remove 需要 pnpm 版本 >= 8.5.0.
pnpm patch-remove element-plus@2.3.4
这时会删除patches文件夹下对应的patch文件和package.json
中对应的记录。
npm&yarn
- npm 可以使用
patch-package
包 - yarn 可以使用
yarn patch
命令