概述
使用 patch-package
修改第三方模块,及时解决第三方依赖包的 bug
安装
1 2 3 4 5 6 | # npm npm install patch-package --save-dev # yarn yarn add --dev patch-package postinstall-postinstall |
创建补丁
直接在项目根目录下的 node_modules
文件夹中找到要修改依赖包的相关文件,然后回到根目录执行
1 2 3 4 5 | # npm > 5.2 npx patch-package package-name # yarn yarn patch-package package-name |
package-name
就是要修改的依赖包名
执行完成后,会在项目根目录的 patches
目录中创建补丁文件 package-name+0.44.0.patch
(0.44.0 是依赖包版本),这个补丁需要提交到代码仓库中
options
-
--use-yarn
patch-package
默认是根据项目中的 lockfile 来决定使用 npm 还是 yarn,如果两种都有,则使用 npm,可以通过这个参数启用 yarn -
--exclude <regexp>
创建补丁文件时,忽略与正则表达式匹配的路径,路径相对于要修改的依赖包的根目录,默认:package\.json$
-
--include <regexp>
与--exclude <regexp>
相反,创建补丁文件时仅考虑与正则表达式匹配的路径,默认:.*
-
--case-sensitive-path-filtering
使--include
或--exclude
中使用的正则表达式区分大小写 -
--patch-dir
指定放置补丁文件的目录
嵌套模块
支持修改依赖包的依赖包,比如 node_modules/package/node_modules/another-package
,通过 /
分隔
1 2 3 4 | npx patch-package package/another-package # scoped packages npx patch-package @my/package/@my/other-package |
更新补丁
与创建补丁过程一样
打补丁
不带参数执行 npx patch-package
或者 yarn patch-package
应用所有补丁
options
-
--reverse
撤回所有补丁
Note: 如果打补丁后,补丁文件被修改过,此操作将失败,此时可以重新安装 node_modules -
--patch-dir
指定补丁文件所在目录
部署
在 package.json
的 scripts
中加入 "postinstall": "patch-package"
,后续执行 npm install
或 yarn install
命令时,会自动为依赖包打补丁了
参考资料
- https://github.com/ds300/patch-package
最后
以上就是稳重黑夜为你收集整理的使用 patch-package 修改第三方模块的全部内容,希望文章能够帮你解决使用 patch-package 修改第三方模块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复