怎么在pnpm中修改node_modules并生效

1,892 阅读1分钟

前言

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

解决思路

直接修改node_modules

怎么生效

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

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

步骤
  • 使用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