背景
我们日常开发中会遇到 npm 包有问题,通常的修复方法有两种
1、提交 PR 或 issue,等待作者修改
2、copy 源码到本地修改
然鹅,两种方法都不太科学,弊端太明显,那么使用 patch-package 是如何修改的。
patch-package
1、安装
yarn add patch-package -D
2、在 node_modules 找一个包修改源码,如图这里我找的 lodash 的 cloneDeep.js 文件,增加一行代码
3、生成补丁
npx patch-package <包名>
npx patch-package lodash
4、到这个一步我们已经可以把这个提交到 git 仓库了,那么别人拉下来代码怎么变成最新的代码呢?
npx patch-package
// 或
// package.json
"scripts": {
"patch": "patch-package"
}
执行
npm run patch
执行后会发现,加的那个 console 就出来了
注意事项
1、patch 是锁定版本号的,如果升级了版本,patch 内容将会失效,最好在 package.json 能够锁定版本号。
2、魔改一时爽,但是也失去了升级的能力,提 issue 和 PR 才是正途。