likes
comments
collection
share

pnpm patch—优雅的修改第三方依赖

作者站长头像
站长
· 阅读数 9

在某些场景下,我们需要对第三方的依赖进行一点改进,这时候我们应该怎么办呢?

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 patch—优雅的修改第三方依赖

pnpm start运行一下

pnpm patch—优雅的修改第三方依赖

修改第三方库的代码

pnpm patch is-odd@3.0.1

返回了一个依赖的修改路径

pnpm patch—优雅的修改第三方依赖

使用code打开一下

code C:\Users\19633\AppData\Local\Temp\9b9ee94d390ef48a98a8d57159039b9f

修改一下源码,加一个console.log()

pnpm patch—优雅的修改第三方依赖

保存commit信息

pnpm patch-commit C:\Users\19633\AppData\Local\Temp\9b9ee94d390ef48a98a8d57159039b9f

pnpm patch—优雅的修改第三方依赖

重新运行一下

pnpm start

pnpm patch—优雅的修改第三方依赖

此时生成了一个patches的目录,通过将它push到远程仓库,可以保存我们修改第三方库的信息

pnpm patch—优雅的修改第三方依赖

如果我们直接改变patches下面的文件,也会直接生效

pnpm patch—优雅的修改第三方依赖

记得运行前要重新install一下

pnpm patch—优雅的修改第三方依赖

补充

除了上述的方法,也可以将公有依赖fork到私有仓库,通过URI的方式进行安装,如:

如果我们安装lodash这个库的话,除了使用包名安装,还可以直接通过URI的形式

  "dependencies": {
    "is-odd": "3.0.1",
    "my-loadsh": "git+https://github.com/lodash/lodash.git"
  },

pnpm patch—优雅的修改第三方依赖

结束收工!!!