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

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

相关推荐
多看书少吃饭5 分钟前
从Vue到Nuxt.js
前端·javascript·vue.js
前端一小卒15 分钟前
从 v5 到 v6:这次 Ant Design 升级真的香
前端·javascript
前端不太难1 小时前
《Vue 项目路由 + Layout 的最佳实践》
前端·javascript·vue.js
想学后端的前端工程师2 小时前
【Vue3组合式API实战指南:告别Options API的烦恼】
前端·javascript·vue.js
一勺-_-2 小时前
mermaid图片如何保存成svg格式
开发语言·javascript·ecmascript
萌萌哒草头将军2 小时前
pnpm + monorepo 才是 AI 协同开发的最佳方案!🚀🚀🚀
前端·react.js·ai编程
GISer_Jing3 小时前
深入拆解Taro框架多端适配原理
前端·javascript·taro
毕设源码-邱学长4 小时前
【开题答辩全过程】以 基于VUE的藏品管理系统的设计与实现为例,包含答辩的问题和答案
前端·javascript·vue.js
San30.4 小时前
深入理解 JavaScript:手写 `instanceof` 及其背后的原型链原理
开发语言·javascript·ecmascript
北冥有一鲲4 小时前
LangChain.js:RAG 深度解析与全栈实践
开发语言·javascript·langchain