React Native 中给第三方库打补丁

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

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

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

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

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

推荐使用 patch-packageopen

安装

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

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

Yarn 只在 yarn installyarn 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 文件夹,里面有一个补丁文件,记录你的修改。

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

相关推荐
前端之虎陈随易1 小时前
2年没用Nodejs了,Bun很香
linux·前端·javascript·vue.js·typescript
空中海1 小时前
04 工程化、质量体系与 React 生态
前端·ubuntu·react.js
Yue1682 小时前
一文教你五分钟学会Zustand,React状态管理更加方便!
react native
空中海2 小时前
03 性能、动画与 React Native 新架构
react native·react.js·架构
好运的阿财2 小时前
OpenClaw工具拆解之host_workspace_write+host_workspace_edit
前端·javascript·人工智能·机器学习·ai编程·openclaw·openclaw工具
XiYang-DING2 小时前
JavaScript
开发语言·javascript·ecmascript
空中海3 小时前
02 React Native状态、导航、数据流与设备能力
javascript·react native·react.js
空中海4 小时前
02 状态、Hooks、副作用与数据流
开发语言·javascript·ecmascript
空中海4 小时前
04 React Native工程化、质量、发布与生态选型
javascript·react native·react.js