patch-package 修改 node_modules流程以及注意点

patch-package 是 前端工程里非常常用的一个工具 ,用来 给 node_modules 里的第三方依赖打补丁(打 patch) ,并且 可被 Git 管理、可复现 。本质:diff + apply

一句话理解:

当你不得不改 npm 包源码,但又不想 fork / 不想每次重装都手动改时,用 patch-package。


使用流程:

第一步:安装补丁工具

bash 复制代码
npm install patch-package postinstall-postinstall --save-dev 

这会自动在你的 package.json 的 scripts 里加上 "postinstall": "patch-package",确保每次安装依赖都自动修复。如果没自动加入,请手动加上。

第二步:直接修改 node_modules/某个包 的源码,并运行 patch-package 包名生成补丁

bash 复制代码
npx patch-package 你的包名

# 注意:npx patch-package 后面写的是:你"修改的那个 npm 包的包名(package name)",不是文件名,也不是路径。

例如我这里修改的文件是NativeVosk.ts 文件,生成补丁的命令应该为:npx patch-package react-native-vosk

运行后,你会发现项目根目录多了一个 patches 文件夹,里面有一个 "你修改的包名"+x.x.x.patch 文件。提交代码时把这个文件也提交上去。

第三步:清理旧的构建缓存并运行

如果是普通的项目,直接删除node_modules,再执行npm i 即可。

如果是React Native 等复杂项目,需要再删除原生项目生成的android / ios 文件夹、编译缓存 (android/app/build 或 Gradle 缓存),命令如下(这里等待时间会比较长):

bash 复制代码
# 如果是React Native 项目,先执行
cd android && ./gradlew clean && cd ..

# 再重新生成原生目录
npx expo prebuild --clean

# 最后运行
npx expo run:android

最后:验证

patch 内容是否包含你的改动

随便打开 patch 文件,确认有你改的 diff

相关推荐
phltxy11 分钟前
Vue3入门指南:从环境搭建到数据响应式,开启高效前端开发之旅
前端·javascript·vue.js
小飞大王66612 分钟前
CSS基础知识
前端·css
Charlie_lll14 分钟前
学习Three.js–风车星系
前端·three.js
代码游侠14 分钟前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
玩电脑的辣条哥31 分钟前
幽灵回复AI已回复但前端不显示的排查与修复
前端·人工智能
石去皿1 小时前
轻量级 Web 应用 —— 把一堆图片按指定频率直接拼成视频,零特效、零依赖、零命令行
前端·音视频
星夜落月1 小时前
Web-Check部署全攻略:打造个人网站监控与分析中心
运维·前端·网络
摘星编程1 小时前
OpenHarmony + RN:ProgressBar进度条组件
javascript·react native·react.js
冰暮流星1 小时前
javascript之双重循环
开发语言·前端·javascript
爱敲点代码的小哥2 小时前
C#视觉模板匹配与动态绘制实战(绘制和保存,加载tb块,处理vpp脚本的方式)
前端·javascript·信息可视化