开源路线图
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

今年,React Native 团队专注于对 React Native 进行大规模的架构重构。正如 Sophie 在《React Native 现状》中提到的,我们已制定了计划以更好地支持 Facebook 外部蓬勃发展的 React Native 用户和贡献者。现在该分享我们工作细节了,在此之前我想阐述 React Native 在开源领域的长期愿景。
我们对 React Native 的愿景是...
-
健康的 GitHub 仓库:问题与拉取请求能在合理时间内处理
- 提升测试覆盖率
- 从 Facebook 代码库同步的提交不应破坏开源测试
- 更大规模的有意义社区贡献
-
稳定的 API:便于对接开源依赖项
- Facebook 使用与开源相同的公共 API
- 遵循语义化版本规范的 React Native 发布
-
活跃的生态系统:由社区维护高质量的 ViewManager、原生模块和多平台支持
-
优质的文档:专注帮助用户打造高质量体验,提供最新的 API 参考文档
我们已确定以下重点领域来实现该愿景:
✂️ 精简核心
我们的目标是缩小 React Native 的范畴,移除非核心及未使用的组件。我们将非核心组件转交社区以加速其发展。精简后的范畴将使贡献管理更高效。
WebView 是我们移交社区的组件范例。我们正开发工作流,确保内部团队在组件移出仓库后仍可使用。我们还确定了数十个待移交组件。
🎁 开源内部工具与 🛠 更新工具链
Facebook 产品团队的 React Native 开发体验与开源环境差异显著。开源社区流行的工具在 Facebook 内部未必使用,某些功能由内部工具实现。有时 Facebook 团队已习惯外部不存在的工具。这些差异将在我们开源新架构时带来挑战。
我们将开源部分内部工具,同时增强对开源社区流行工具的支持。以下是我们将推进的项目(非完整清单):
-
开源 JSI 并支持社区引入自选 JavaScript 虚拟机,取代初始版 RN 的 JavaScriptCore。我们将在后续文章详解 JSI,您可通过 Parashuram 在 React Conf 的演讲提前了解
-
支持 Android 64 位库
-
支持新架构下的调试功能
-
增强对 CocoaPods、Gradle、Maven 及新版 Xcode 构建系统的支持
✅ 测试基础设施
当 Facebook 工程师提交代码时,若通过全部测试即被视为可安全合并。这些测试能识别变更是否会破坏我们内部的 React Native 功能界面。然而,Facebook 内部使用 React Native 的方式存在差异,这导致我们可能在无意中破坏了开源版本的 React Native。
我们将加强内部测试机制,确保其在尽可能接近开源环境的状态下运行,从而防止破坏性代码流入开源版本。同时将构建更完善的基础设施,支持在 GitHub 核心仓库进行高效测试,使未来的 pull request 能便捷地包含测试用例。
结合精简后的核心功能范围,这些改进将使贡献者能更快速、更自信地合并 pull request。
📜 公共 API
Facebook 将通过公共 API 使用 React Native(与开源社区采用的方式相同),以减少意外的破坏性变更。我们已着手转换内部调用点,目标是形成稳定的公共 API,最终在 1.0 版本实现语义化版本控制。
📣 沟通
React Native 是 GitHub 上贡献者数量最多的开源项目之一,这让我们深感欣喜并希望持续保持。我们将推进增强透明度、开放讨论等举措来促进贡献者深度参与。文档作为新用户接触 React Native 的首要环节却长期未被优先关注,我们将着手改善:恢复自动生成的 API 参考文档,新增聚焦打造优质用户体验的内容,并优化发布说明。
时间线
我们计划在未来一年左右逐步落地这些项目。部分工作(如已进入开源版本的 JSI)已在进行中,而精简核心功能范围等任务将耗时更久。我们将尽力向社区同步进展,欢迎加入 Discussions and Proposals 仓库参与讨论——这个由 React Native 社区发起的倡议,已孕育出本路线图中提及的多个项目。