跳到主要内容

31 篇博文 含有标签「公告」

查看所有标签

发布 0.56 版本

· 阅读需 6 分钟
Lorenzo Sciandra
Drivetribe 核心维护者 & React Native 开发者

备受期待的 React Native 0.56 版本现已发布 🎉。这篇博客文章重点介绍了该新版本中的一些变更。我们也想借此机会说明自三月以来一直让我们忙碌的工作内容。

重大变更的两难,或者说,“何时发布?”

贡献者指南解释了所有 React Native 变更需要经过的集成流程。该项目由许多不同的工具组成,需协调和持续支持以保持一切正常运行。加上充满活力的开源社区对项目的贡献,你就可以感受到这一切规模令人头晕目眩。

随着 React Native 的广泛采用,重大破坏性变更必须非常谨慎地进行,过程并不像我们期望的那样顺畅。我们决定跳过四月和五月的发布版本,让核心团队整合和测试一套新的破坏性变更。整个过程中我们使用了专门的社区沟通渠道,确保 2018 年 6 月的(0.56.0)发布尽量让那些耐心等待稳定版本的用户能毫无困难地采用。

0.56.0 完美吗?不会,和任何软件一样,但我们已经达到了“等待更稳定”与“测试得到成功结果,准备推动发布”之间的权衡点,我们觉得可以发布了。此外,我们也知道在最终的 0.56.0 版本中存在一些尚未解决的问题,例如这个这个这个还有这个。大多数开发者升级到 0.56.0 不会有问题。对于那些因上述问题受阻的开发者,我们希望在讨论中见到你们,也期待和你们一起解决这些问题。

你可以将 0.56.0 看作向更稳定框架迈出的坚实基石:可能需要一两周的广泛采用来消除所有边缘情况,但这将促成 2018 年 7 月(0.57.0)版本的更好表现。

最后,我们要感谢67 位贡献者在共计 818 次提交中付出的努力,他们让你的应用变得更好 👏。

那么,话不多说……

重大变更

Babel 7

你们可能知道,使我们能够使用最新最强大 JavaScript 特性的转译工具 Babel 即将发布其7 版本。由于这个新版本带来了一些重要变化,我们觉得现在是升级的好时机,这也让 Metro 能够利用其改进

如果在升级过程中遇到麻烦,请参考相关文档部分

Android 支持现代化

在 Android 方面,周边工具链发生了诸多变化。我们更新到了 Gradle 3.5Android SDK 26Fresco 1.9.0 和 OkHttp 3.10.0,甚至将NDK API 目标升级到了 API 16。这些变更应该不会带来问题,还能加快构建速度。更重要的是,这有助于开发者遵守 下个月开始生效的 Play 商店新要求

在此,我们特别感谢 Dulmandakh 提交的许多 PR ,使这一切成为可能 👏。

未来我们还将继续推进相关措施,大家可以在专门的 issue中关注 Android 支持的更新规划与讨论(以及一个针对 JSC 的子话题)。

新版 Node、Xcode、React 和 Flow

Node 8 现在是 React Native 的标准版本。虽然我们其实已经开始测试了,但随着 Node 6 进入维护模式,我们现在正式全面采用 Node 8。React 也升级到了 16.4,带来了大量修复。

我们放弃了对 iOS 8 的支持,使 iOS 9 成为可支持的最低版本。我们认为这不会成为问题,因为任何能运行 iOS 8 的设备都可以升级至 iOS 9。此举让我们得以移除为运行 iOS 8 的旧设备编写的鲜少使用的兼容代码。

持续集成工具链已升级为使用 Xcode 9.4,确保所有 iOS 测试都在 Apple 提供的最新开发工具上运行。

我们已升级到 Flow 0.75,采用了很多开发者青睐的新错误格式。同时,我们为更多组件创建了类型定义。如果你的项目尚未强制使用静态类型,请考虑使用 Flow 来在编码过程中而非运行时发现问题。

以及许多其他内容……

例如,YellowBox 已被替换,提供了更佳的调试体验。

完整发布日志请参考完整变更记录。升级时请务必关注升级指南,避免迁移到此版本时出现问题。


最后说明:从本周开始,React Native 核心团队将恢复举办月度会议。我们会确保及时向大家通报会议内容,并将你的反馈纳入后续会议讨论。

祝大家编码愉快!

Lorenzo, Ryan 及整个 React Native 核心团队

**附注:**和往常一样,请大家注意 React Native 仍处于 0.x 版本,因仍有许多变更进行中——升级时请保持警惕,可能仍会遇到崩溃或故障。提交问题和 PR 时请相互帮助,遵守行为准则,屏幕那头总有真实的人。