Table of Contents
了解土著反应中的依赖性
依赖是您项目依赖的外部库或模块,用于添加功能、简化开发或改进性能。在 React Industrial 中,依赖通常是通过 npm 或 纱线管理 — JavaScript 软件包管理器,这些软件处理库安装、更新、版本控制,有时甚至本地代码链接。 与标准网络应用程序不同,React Industrial 工程通常会将 JavaScript 依赖与本地依赖(iOS CocoaPods, Android Gradle 文件)捆绑在一起,使依赖性管理更加细致。
依赖分为两类:
- JavaScript依赖 – 纯JS库(如,]),工作时没有任何本土配置.
- 自然依赖 – 需要连接到本地代码的库(例如,]),这些往往需要额外的设置步骤,如或手动的Gradle更改.
反应原生文献提供了项目初始化及其默认依赖树的细节.
安装依赖关系
要在您的 React Industrial 项目中添加一个新的库, 请使用软件包管理器的安装命令。 例如, 要安装 [[FLT: 0]] react-navigation [[[FLT: 1]], 运行 :
npm install @react-navigation/native @react-navigation/stack
或带线条:
yarn add @react-navigation/native @react-navigation/stack
安装后,一些库需要连接本地代码. React Industrial 0.60+中,自动链接自动处理大多数本地依赖。然而,某些库(特别是那些有自定义本地视图或第三方SDKs的库)仍然需要人工步骤:
- 对于iOS:运行或,安装CocoaPods的吊舱.
- Android: 库的]自动合并,但如果库的回声原生软件包没有自动注册,则您可能需要添加一个]寄存器或修改。
总是检查图书馆的安装指南 — 许多流行的图书馆在install后会采取避免运行时崩溃的步骤。
使用 npx 反应- 内在链接( Legacy)
对于使用 React 原生 < 0. 60 的项目, 您必须手动将原生依赖连接到 [[FLT: 12] ] 。 此命令修改了您的 Podfile 和/ 或 [[[FLT: 13] ] 。 如果您要保留一个遗留项目, 请考虑 自动与 [[FLT: 14] 链接 。
保存依赖关系
默认情况下, npm 和 rarn 将已安装的软件包保存到您的 package.json 文件 或 部分。这可以跟踪所有依赖及其版本范围,确保其他开发人员或部署环境能够安装一个单一命令的同一套软件包( 或 ]]] 。
当安装一个包而不明确标为dev依赖时,它会被保存在 中。对于只在开发期间使用的工具(例如,,),使用:
npm install --save-dev package-name
yarn add --dev package-name
保持运行时间和非运行依赖之间的明确区分,减少了生产中的捆绑规模,防止意外将建设时间公用事业纳入应用商店档案。
管理依赖性版本
在您的 [[FLT: 0]] package.json [[FLT: 1] 中指定准确的版本有助于防止更新引起的意外问题。 您可以使用语义版本( semver) 来控制更新 :
- ] – 接受任何小版本或补丁版本超过1.0(如1.1.0,1.2.5),但不接受2.0.
- ] – 仅接受超过1.0的补丁版本(如1.0.1,1.0.9),但不接受1.1.0.
- – 被固定在准确的1.0.0版本(没有更新).
对于生产应用,请将直接依赖关系固定在准确的版本(例如)上,以避免在部署时意外中断更改。使用锁文件(或])来保证每个安装都产生相同的树。
解决版本冲突
当两个库需要不同版本的同一软件包时,您可能会遇到对等依赖性警告或运行时间错误。 解决冲突的工具 :
- npm Is packet-name – 显示依赖树并突出重复.
- yarn 为什么包名[] –解释为什么安装一个包.
- npm dedupe/[yarn-dedreplex –尽可能平整重复包.
对于 React Industrial, 请特别注意 , ] , 或像 这样的本地模块的相互冲突的版本。 不一致的版本可能会产生诸如“无法找到国内模块”之类的加密错误。
更新依赖关系
定期更新依赖性对于安全、业绩和获取新特性至关重要。
- minor/Patch更新:]或] –安全,不发生突破性变化.
- 主要的更新: 手动在中将版本撞上并运行[]]. 查看库的更改日志以打破API的更改.
- 交互升级:使用](单独安装),以查看哪些软件包有最新版本,然后有选择地更新.
当更新核心 React Industrial 本身(])时,总是遵循官方的 React Industrial 升级指南[ , 并使用 ]] 将更改合并到您的项目的模板文件中。 在任何重大更新后, 都要在iOS 和 Android 模拟器及真实设备上进行彻底测试 。
使用 CI/CD 自动更新
在连续的集成管道中,设置一个定期运行或[]的工作,为小更新创建拉动请求,并触发全测试套件。这可以防止依赖性腐烂,同时保持稳定的环境。
删除未使用的依赖
当一个库不再使用时,将其移除以减少捆绑大小并简化维护:
npm uninstall library-name
yarn remove library-name
未使用的包可以停留在 中,即使它们是过渡性依赖。运行 或 删除外在包。为了进行更彻底的清理,请考虑:
- depcheck — 一种在您的代码库中识别未使用的依赖性的工具.
- npx反应-内存不链接库名[(legacy) –删除任何本土链接文物.
扶养管理的最佳做法
- 正常地审查和更新依赖关系。 每月安排一次“依赖性审计”——检查安全咨询(),更新到最新的稳定版本,并清理过时的软件包。
- 将依赖性保持在所要求的最低水平。 避免“厨房槽”库;为图标选择重点突出、保存良好的替代物(例如,而不是导入一个完整的UI工具包)。
- 使用语义版本来控制更新. Pin Major 版本并依赖锁文件来复制.
- 在更新依赖性后进行彻底测试. 运行单元测试,集成测试,以及两个平台的人工UI测试. 注意改变的本地模块行为.
- 保存一个干净的]和锁住文件. 避免可引入不一致的手动编辑. 承诺或] 进行版本控制,以确保在环境之间安装相同的装置.
- 如果您需要定型安装和工作空间,则在npm上优先使用线条. Yarn Berry(v2+) 提供 Plug'n'Play,它可以加速安装,但可能要求与 React Industrial 兼容性检查.
- 使用在调试前诊断常见的依赖性和环境问题.
使用可可花和葡萄干处理土著依赖
对于iOS, 始终承诺将 [[FLT: 53]] 锁定本地寄存器的版本。 当您升级一个 React Industrial 库以获取最新的兼容寄存器版本时, 请运行 [[FLT: 54] ] 。 对于 Android, 请确保您的 [[FLT: 55]] 的值不会在数据库中相互冲突 或 。
使用带有反演原生的单重置器
如果您的项目使用单重(如Nx、Turborepo、Lerna),则要用工作空间管理根部的依赖关系。 当心挂起 — — 一些反动的土著库可能需要 选项以避免过渡性依赖冲突。
常见的陷阱和如何避免它们
- 在 npm 安装后“ 找不到模块” 错误 : [[ [FLT: 1]] 删除 [[FLT: 59]] , [[FLT: 60]]] , 并运行新安装。 如果使用纱线, 删除 以及 (但用锁文件小心) 。
- iOS 构建在添加库后失败 : 确保您运行 , 并且正确引用库的 pockfile。 请检查 Xcode 构建日志以记录“ 找不到” 错误 。
- Android 运行时崩溃, 原因是缺少本地模块:[] 验证库的Android软件包是自动注册的, 或者您手动在 中添加了它的]]。
- 复制符号或方法冲突:[使用]],并通过升级或降级其中的图书馆解决相互冲突的本地代码.
外部资源
有效的依赖管理有助于保持你所执行的“反动原生”项目的安全、高效和可维护。 遵循这些做法将简化发展,减少过时或不兼容的图书馆可能造成的问题,并允许你的团队专注于构建特征而不是与依赖地狱作斗争。