React Native 中给第三方库打补丁

有时使用了某个第三方库,可是它有些问题,我们不得不修改它的源码。

我们可能不方便给原作者提 Pull Request,因为他们可能不愿意接受我们的更改。又或者原作者无法及时发布新版本。

种种原因,我们只有去修改 node_modules 目录下的文件。

可是当我们执行 yarn install 或 yarn add 时,原先的修改会丢失。

有没有办法让我们可以在 yarn install 或 yarn add 时,自动把修改的源码加载进来?

推荐使用 patch-packageopen

安装

复制代码
yarn add patch-package postinstall-postinstall

大多数时候,当你执行 yarn add、yarn remove 或 yarn install时,Yarn 会用原始的模块完全取代你的 node_modules 的内容。 patch-package 使用 postinstall 钩子按照你的要求来修改这些原始模块。

Yarn 只在 yarn install 和 yarn add 之后运行 postinstall 钩子,但不包括在 yarn remove 之后。postinstall-postinstall 包用来确保你的 postinstall 钩子在 yarn remove 后也能被执行。

配置 scripts,确保每次执行 yarn install 或者 yarn add 之后,都会自动执行 patch-package:

复制代码
// package.json
"scripts": {
    "postinstall": "patch-package",
}

使用

首先对你的 node_modules 文件夹中的某个包的文件进行修改,例如js文件注释或者改动。运行

复制代码
yarn patch-package react-native-system-setting

会在根目录下,创建了一个 patches 文件夹,里面有一个补丁文件,记录你的修改。

这样就不怕在更新的时候,修改丢失了。

相关推荐
研☆香2 小时前
jQuery + Swiper.js 实现动态渲染轮播图
前端·javascript·jquery
特立独行的猫A7 小时前
仓颉版 Tauri:基于轻量化线程与纯血鸿蒙架构的下一代 Web 混合开发利器
javascript
李游Leo8 小时前
HarmonyOS 7 ArkTS + ohpm:三方 JS 库副作用隔离与 API 26 升级回归【鸿蒙心迹】
javascript·回归·harmonyos
你挚爱的强哥8 小时前
【sgKeyboard】自定义组件:虚拟键盘
前端·javascript·计算机外设
锅里游的鱼吖8 小时前
echarts自定义折线图
前端·javascript·数据库
何何____8 小时前
Vue 全局事件总线详解
前端·javascript·vue.js
u0111026759 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
事圆则缓9 小时前
Flutter 状态管理框架对比(五):GetX 的响应式、依赖注册与生命周期
前端·javascript·flutter
凌云志.10 小时前
【protobuf】proto3语法详解&通讯录2.x实现
java·前端·javascript
ss27310 小时前
AI全栈实战 | 2.1-03 JavaScript 核心:单线程+事件循环为什么不等同于多线程,原型链 vs Java 继承
java·开发语言·javascript