使用 patch-package 打补丁修改 npm 包

背景

使用 patch-package 修改npm包uview-plus 的 index.js

希望禁用在 H5 环境下会加载所有组件的一段代码。

修改前:

修改后:

patch-package 介绍

patch-package 是一个 npm 包,允许开发者为已安装的 npm 包创建补丁文件。这样,我们可以轻松管理对这些包的修改,而不会在每次安装依赖时丢失我们的更改。补丁文件存储在项目中(提交到git),并且可以在每次运行安装命令时自动应用。

主要目的就是替代人工修改npm包。同时方便其他人拉取代码安装依赖后文件不一致问题。

操作步骤

安装 patch-package

js 复制代码
yarn add patch-package --dev

定位并修改文件

进入 node_modules/uview-plus 目录,找到 index.js 文件。在这个文件中,找到加载所有组件的相关代码,并将其注释掉。修改完成后,保存文件。

生成补丁

在项目根目录下运行以下命令来生成补丁:

js 复制代码
npx patch-package uview-plus

这一步会在根目录下生成patches目录,需要把这个目录提交到git。

更新 package.json

为了确保补丁在每次安装依赖时都能自动应用,需要在 package.json 中添加一个 postinstall 脚本:

js 复制代码
{
  "scripts": {
    "postinstall": "patch-package"
  }
}

验证修改

运行 yarn install 或者 npm install,patch-package 将自动应用补丁修改npm包。

相关推荐
Helix25017 分钟前
Chrome 开发者工具进阶:长截图、网络调试与性能分析
前端·chrome·chrome devtools·使用技巧·性能分析·开发者工具·长截图
无忧.芙桃40 分钟前
位图妙用:512MB 实现 40 亿整数的存在性查询
c语言·c++·面试·哈希算法
liangshanbo121544 分钟前
面试题:Webpack 的 publicPath 有什么作用?
前端·webpack·node.js
mjhcsp1 小时前
DeepSeek V4.1 Flash 批量处理效能实测
java·前端·数据库
ShineWinsu1 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
海绵宝宝转agent1 小时前
操作系统八股开源笔记分享
java·面试
CHEEVEN_QY2 小时前
新能源汽车电池托盘FSW量产的工艺稳定性控制
java·前端·汽车
Alice-YUE2 小时前
前端 × AI:从 Cursor 到 Transformer,一份完整认知路径
前端·人工智能·transformer·ai编程·前端开发·cursor
Code_Solitude2 小时前
C语言:关于二维数组的作业总结
java·c语言·前端
时间的拾荒人2 小时前
Qt 文件操作详解:从基础类到读写实战
开发语言·qt·面试