pnpm patch—优雅的修改第三方依赖
在某些场景下,我们需要对第三方的依赖进行一点改进,这时候我们应该怎么办呢?
pnpm patch
pnpm 官方新增了两个命令来实现了这个功能,我们一起来看一下
// 生成包的一个修改路路径
pnpm patch <package-name><package-version>
// 生成patch目录,保存修改的diff信息
pnpm patch-commit <file-path>
coding
我们一起来走一遍官网的例子
搭建环节
新建一个patch-demo
文件
pnpm init
安装一个第三方依赖
pnpm i is-odd@3.0.1
新建index.js
const isOdd = require('is-odd')
console.log(isOdd(1));
配置一下package.json文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
整体的目录结构
pnpm start
运行一下
修改第三方库的代码
pnpm patch is-odd@3.0.1
返回了一个依赖的修改路径
使用code
打开一下
code C:\Users\19633\AppData\Local\Temp\9b9ee94d390ef48a98a8d57159039b9f
修改一下源码,加一个console.log()
保存commit信息
pnpm patch-commit C:\Users\19633\AppData\Local\Temp\9b9ee94d390ef48a98a8d57159039b9f
重新运行一下
pnpm start
此时生成了一个patches的目录,通过将它push到远程仓库,可以保存我们修改第三方库的信息
如果我们直接改变patches下面的文件,也会直接生效
记得运行前要重新install
一下
补充
除了上述的方法,也可以将公有依赖fork到私有仓库,通过URI的方式进行安装,如:
如果我们安装lodash
这个库的话,除了使用包名安装,还可以直接通过URI的形式
"dependencies": {
"is-odd": "3.0.1",
"my-loadsh": "git+https://github.com/lodash/lodash.git"
},
结束收工!!!
转载自:https://juejin.cn/post/7269011652233412667