怎么在pnpm中修改node_modules并生效

怎么在pnpm中修改node_modules并生效

兰涛 lands

前言

我在使用一个开源库的时候发现了一个 bug,https://github.com/chenshuai2144/openapi2typescript/pull/111 ,随即我提交了 PR 修复了这个 BUG,但是官方人员还没有合并这个问题。我目前着急解决这个问题,大家都知道官方解决一个问题,需要:cr-合并-发版,如果该开源库 A 是我使用的另一个开源库 B 引用的,那个还需去另外一个开源库提交 BUG 督促他们更新和发版,这样的流程是非常麻烦的。所以产生了该文档。

解决思路

直接修改node_modules

怎么生效

如果使用的是 pnpm 包管理工具:

文档:https://pnpm.io/cli/patch
视频演示:https://www.youtube.com/watch?v=0GjLqRGRbcY

步骤
  • 使用pnpm patch <pkg> 其中是自己需要修改的包,需要明确指定版本号。

  • 该命令会生成一个本地的地址,将该地址导入到 vscode。修改完成后执行pnpm patch-commit <地址>

  • 最后一定要使用 pnpm 执行命令,否则不生效

会生成一个临时的项目地址,在缓存文件中,打开它并修改,如图:
image.png

打开项目后修改文件:

image.png
使修改的文件生效:

image.png
执行完成后,会在 package.json 和根目录生成文件

image.png

image.png
直接将变更后的内容提交,其他同事也能生效,等官方更新包后,我们将此次更改删除即可(修改的包版本更新后可能会报错,所以需要固定包版本)

非 pnpm 包管理工具

其他包管理器使用开源库能解决:GitHub - ds300/patch-package: Fix broken node modules instantly 🏃🏽♀️💨

image.png

  • 标题: 怎么在pnpm中修改node_modules并生效
  • 作者: 兰涛
  • 创建于 : 2023-07-10 16:20:40
  • 更新于 : 2024-01-26 09:52:53
  • 链接: https://lands.work/85c7a0dd/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论