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

相关推荐
To_OC15 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
vipbic16 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy16 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志16 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble17 小时前
c端系统,其实更像一个信息展示平台
前端
李姆斯18 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜19 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司19 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
kaiking_g19 小时前
vue项目中,静态导入 vs 动态导入 详解
前端·javascript·vue.js
江华森19 小时前
Web 开发基础:HTTP 与 REST
前端·网络协议·http