【实践功能记录9】使用pnpm打补丁

对依赖包进行修改,有两种方式
方式一 :patch-package
方式二pnpm patch

记录工作中使用pnpm patch
1.创建补丁:
pnpm patch <package-name><package-version>

使用pnpm patch命令创建一个可编辑的副本,可以在这个目录中自由编辑软件包的代码
2.编辑代码:

根据提示的路径,打开对应的临时目录,对软件包的代码进行必要的修改
3.提交补丁:

修改完成后,使用pnpm patch-commit <path>命令生成补丁文件,并将其注册到项目的 package.json文件中的 patchedDependencies字段
4.应用补丁:

在以后的安装过程中,pnpm 会自动应用这些补丁,无需额外配置。补丁文件默认保存在项目根目录下的 patches 目录中,而 package.json 会更新以包含补丁信息
5.注意事项:

● 如果想要改变包的依赖项,不要使用补丁来修改包的 package.json 文件。要覆盖依赖项,使用 overrides 或软件包钩子。

● 如果在使用 Windows 并且使用 git-bash 的话,文件路径要使用两个 \ 分割,例如:
pnpm patch-commit C:\\Users\\AppData\\Temp\\482a1b2c5aaad6b4abb4d39bab8ef39c\\user

● 如果在打补丁过程中遇到问题,比如"Building isolated workspace app fails when patching",可以在pnpm 配置中添加 allowNonAppliedPatches: true 来允许未应用的补丁。

bash 复制代码
// 创建临时目录,修改代码
pnpm patch element-plus@2.3.1
// 提交补丁
pnpm patch-commit <file-patch>

生成的临时目录,找到需要修改的组件进行修改,如下图:

修改成功:

打包完成会根目录会生成 patches文件夹,生成补丁文件,如下图:

同时package.json中也增加了配置,如下图:

版本不一致可能会导致失败,pnpm self-update 更新到最新的稳定版本

相关推荐
李姆斯5 小时前
为啥Agent在coding表现这么好,但是在别的领域就是差的不少?
前端·agent·ai编程
鱼与宇8 小时前
前端Web(html+css+js+vue3)
前端
雪芽蓝域zzs10 小时前
(六)打包优化 + Nginx 部署完整配置 + 项目收尾
前端·vue.js
研☆香10 小时前
聊一聊前端的常见字 关键字
开发语言·前端·javascript
东风破_10 小时前
JWT 1:从一个登录请求开始,理解 React 项目里的 API 层与 Mock
前端·后端
东风破_10 小时前
JWT 3:为什么 Token 要放进 Authorization?Axios 拦截器到底解决了什么?
前端·后端
东风破_10 小时前
JWT 5:路由守卫是什么?把整个 JWT 登录鉴权流程串起来
前端·后端
东风破_10 小时前
JWT 2:HTTP 是无状态的,为什么登录成功后还要给 Token?
前端·后端
东风破_10 小时前
JWT 4:Zustand 到底解决了什么?为什么登录状态要放进 Store?
前端·后端
IT_陈寒10 小时前
Vite动态导入差点让我秃头,原来问题出在这
前端·人工智能·后端