pnpm-pacth
yarn patch 使用也是类似
## 给指定的软件包打补丁,该命令会将指定的软件包提取到一个临时可以编辑的目录文件中
pnpm patch <pkg name>@<version>
## 对比更改的文件,生成一个补丁包,会自动在package.json自动生成 patchedDependencies
pnpm patch-commit <path>
打开该文件地址,在你想要的位置修改代码
目录会自动生成patches,package.json 也会自动生成patchedDependencies
记录的是我刚更改文件的信息
测试
// 移除补丁包
pnpm patch-remove <pkg name>@<version>
patch-package
我感觉使用方式也差不多
1、安装 patch-package
yarn add patch-package postinstall-postinstall --dev
or
npm install patch-package postinstall-postinstall --save-dev
2、修改和生成补丁
找到 node_modules 某个依赖包进行修改。运行以下命令进行修改
npx patch-package <package-name>
3、然后运行通过npm install 或者 yarn install 安装
以上的方式只能是修改node_modules, 这里面一般是构建后的产物。但实际我们需要在源码的基础上修改,一般是fork下来,修改,然后再打包,但其实打包的话,你需要特别了解它
覆盖原先的包
npm overrides (>= 8.3.0)
yarn resolutions
pnpm overrides