我是靠谱客的博主 稳重黑夜,最近开发中收集的这篇文章主要介绍使用 patch-package 修改第三方模块,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用 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 修改第三方模块所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部