使用patch-package修改`node_modules`

3,785 阅读1分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」。

为何要修改 node_modules

image.png

  • 通过 webstorm 全局搜索了项目文件并没有 图片中提到的 owen23355@gmail.com trash@rubaxa.org 字段。证明不是项目内容,可能由与依赖有关。
  • 再次打开 webstorm 搜索 node_modules 证实是插件中存在 image.png
  • 所以需要修改 node_modules 删除相关内容就可以。本地修改 node_modules 事更新依赖的话 漏洞依然存在。
  • 经过搜索后 发现答案都指向了 patch-package 这个插件

开始修改

patch-package 是什么?

  • patch-package 可以理解为 为npm 插件 打一个补丁,这个补丁可以用于修改 node_modules 文件中的内容,且修复完成后 重新下载依赖不会被还原。
  • 插件npm 首页由详细用法介绍。目前看很合适 就用它了

首先安装 patch-package

npm i patch-package

修改 node_modules 中需要修改的文件(一定要在三确认 慎重!!!!!)。

执行命令生成补丁

  • 可以使用yarn or npm。需要注意的是 使用 npx(npm > 5.2
// 下面的 package-name 是指修改的包名
// yarn 
yarn patch-package package-name

// npm 
npx patch-package package-name

命令支持一些选项

image.png

  • 执行完成会生成一个目录 存放补丁文件 默认在根目录下生成 patches 目录

image.png

  • 补丁文件类似git 记录了 删除 新增 等操作

image.png

最后一步 添加npm执行钩子

  • 在 package.json 文件的 scripts
"postinstall": "patch-package"

image.png

重新下载依赖 打包后并未出现相关内容 修改完成!!!!