使用场景:
有时候我们使用外部库的时候,需要按照项目的需求,修改第三方库的源码来定制化一些功能。但是修改后的第三方库的源码,如果需要被他人使用的话,一般由两种解决方式.
1. 将修改后的第三方包发布到自己的私库,后续团队成员用私库下载包
2. 使用patch-package,每次下载第三方包后,自动修改第依赖包的代码
1.下载依赖:
npm
npm i patch-package --save-dev
yarn
npm i patch-package --save-dev
2.改动源码
axios为例
node_modules/axios/index.js
+ console.log('测试')
3.生成补丁:
对指定库生成补丁
npx patch-package axios
根目录下出现
+ patches
|-axios+1.1.3.patch
4. 修改库
根据生成的补丁修改对应的库
npx patch-package
使用npm钩子
package.json
{
script:{
preinstall:'npx patch-package' //每次执行npm install后执行此命令
}
}