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

相关推荐
豆约翰4 分钟前
phaserjs+typescript游戏开发之camera实现
前端·javascript·typescript
MoFe119 分钟前
【.net core】【sqlsugar】时间查询示例
linux·前端·.netcore
PorkCanteen38 分钟前
Axios 封装:处理重复调用与内容覆盖问题
前端·javascript·http
轻口味1 小时前
Vue.js 父子组件数据传递:props 和事件
前端·javascript·vue.js
progrmmmm1 小时前
elementui表单验证,数据层级过深验证失效
前端·vue.js·elementui
itwlz1 小时前
npm发布组件(vue3+webpack)
前端·npm·node.js
1.01^10002 小时前
[0242-06].第06节:SpringBoot中的Web开发
前端·spring boot·servlet
weitao_112 小时前
css 实现自定义虚线
前端·css
初遇你时动了情2 小时前
reac 后端接口返回二进制文件流前端导出文件
前端
秋堂主2 小时前
2025第3周 | json-server的基本使用
前端·json