【实践功能记录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 更新到最新的稳定版本

相关推荐
CharlesYu011 天前
前端性能优化的第一性原理,是不断缩短“用户发起意图 → 获得可用结果”之间的时间
前端
平头哥技术团队1 天前
Day 21 _ 页内锚点_给每段起个 id,目录写 href=_#id_,点一下页面就滚到那一段
前端·html·html5
子兮曰1 天前
Bun v1.4.1 深度解析:从 Zig 到 Rust,一场 11 天、64 个 AI 代理的语言迁徙
前端·后端·bun
人民广场吃泡面1 天前
什么是AI Agent?它又能给前端带来哪些效率提升?
前端·人工智能
中科三方1 天前
两家域名注册商资质被ICANN终止:企业域名资产安全再受关注
前端·网络·安全·域名
bug总结1 天前
uniapp vue3全局方法注册使用
前端·javascript·uni-app
华无丽言1 天前
如何在宜搭中实现获取子表中的字段值赋值到父表中?
前端·javascript·低代码
IT_陈寒1 天前
Vue的computed属性竟然坑了我一把
前端·人工智能·后端
威斯软科的老司机1 天前
通俗讲解 CNN 图像识别、向量 Embedding、Softmax 概率计算这三块的简化原理
前端·人工智能·ui·数字孪生
泯泷1 天前
手搓JSVM第 12 篇:完整最小 JSVM 实现与源码设计复盘
前端·javascript·前端框架