patch-package
github.com又名 patch-package
开源的 npm 依赖补丁工具,改完 node_modules 里的文件即可生成 .patch 并随安装自动重打,适合上游修复未发布、项目被 bug 卡住的前端与 Node 开发者临时应急。
工具免费不用登录Linux · macOS · Windows英文开源国内不可直接访问
打开官网 github.com

patch-package 解决的是 npm 生态里一个很具体的尴尬:你依赖的某个包有 bug,上游的修复还没合并发布,而你的项目已经卡住了。它的做法是让你直接改 node_modules 里的文件,然后运行 npx patch-package 包名,把改动导出成 patches 目录下的 .patch 文件。这个文件可以提交进仓库,队友拉代码、CI 构建时都会自动重新打上。
主要功能
核心命令只有一条,生成补丁后配合 postinstall 钩子使用:在 package.json 的 scripts 里加上 "postinstall": "patch-package",之后每次 npm install 或 yarn 安装完依赖,补丁就会被自动应用。README 里给的例子是改掉 some-package 里的 brokenFile.js,生成 patches/some-package+3.14.15.patch 并提交,团队共享这个修复。
安装与兼容
- npm 5 及以上、yarn v1 都支持;yarn v1 需要额外装 postinstall-postinstall。
- yarn workspaces 下要打未提升的包,得在子包里重复一遍配置。
- yarn 2+ 和 pnpm 已自带 yarn patch、pnpm patch,不需要再用它。
- 在 Heroku 上要设 NPM_CONFIG_PRODUCTION=false 或 YARN_PRODUCTION=false。
费用与限制
项目以 MIT 协议开源,代码托管在 GitHub,仓库有 11.2k 星、328 个 fork,界面为英文。它本质是临时补丁方案,适合上游短期不修、又必须让项目跑起来的情况;补丁多了以后,依赖升级时容易冲突,长期还是应推动上游合并。Docker 和 CI 环境里要注意先复制 patches 目录再安装依赖,缓存 node_modules 时也要把补丁内容算进缓存键。
常见问题
patch-package 收费吗?
patch-package 免费使用。MIT 协议开源,免费使用。
用 patch-package 要登录吗?
不用登录就能用。
patch-package 国内能访问吗?
本站 11 月 8 日 检测,patch-package 在国内不能直接访问。
patch-package 有哪些平台 / App?
支持 Linux、macOS、Windows。