使用 patch-package 来科学修改 node_modules 里的文件
当我们使用npm包时,需要修改部分源码做自定义功能,但是直接修改node_modules里面的文件,重新安装包后做的修改就没有了。一般常用办法有两个:
- 将代码下载到本地,修改后手动引入
- fork别人的代码到自己仓库,修改后,从自己仓库安装
但是这样做比较麻烦,而且更新不方便。我们可以使用 patch-package 来管理修改
以 hexo-theme-next 为例
修改 node_modules 里面的代码
安装patch-package:
npm i patch-package --save-dev
执行命令:
npx patch-package hexo-theme-next
第一次使用 patch-package 会在项目根目录生成 patches 文件夹,里面有修改过的文件 diff 记录
当这个包被重新安装后,可以使用如下方式让修改生效
方式一:执行命令:git apply --ignore-whitespace patches/hexo-theme-next+8.0.1.patch
方式二:在 package.json,新增命令 postinstall:
"scripts": { |
执行:npm run postinstall
该命令也会在每次 npm install 时自动执行