下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

使用React Prereleases为未来做准备,前端工程师为何越来越难?

作者:疯狂的程序员     来源: 今曰头条点击数:1004发布时间: 2019-11-15 12:32:52

标签: Web开发Web开发课程Web开发视频

大神带你学编程,欢迎选课

  前言为了与React生态系统中的合作伙伴共享即将发生的变化,我们正在建立正式的预发行渠道。我们希望这一过程将有助于我们满怀信心地对React进行更改,并为开发人员提供尝试试验性功能的机会。这篇文章与从事框架,库或开发人员工具的开发人员最相关。主要使用React来构建面向用户的应用程序的开发人员无需担心我们的预发布渠道。前端工程师为何越来越难?使用React Prereleases为未来做准备。

  

使用React Prereleases为未来做准备,前端工程师为何越来越难_Web开发_Web开发课程_Web开发视频_课课家

 

  React依靠蓬勃发展的开源社区来提交错误报告,打开请求请求和提交RFC。为了鼓励反馈,我们有时会共享一些特殊的React版本,其中包括未发布的功能。

  由于React的真实来源是我们的公共GitHub存储库,因此始终可以构建一个包含最新更改的React副本。但是,对于开发人员而言,从npm安装React更加容易,因此我们有时会将预发行版本发布到npm注册表。最近的示例是16.7 Alpha,其中包括Hooks API的早期版本。

  我们希望使开发人员更容易地测试React的预发行版本,因此我们将通过三个单独的发行渠道来规范我们的流程。

  

 

  一、发布渠道

  帖子中的信息也可以在我们的“发布渠道”页面上找到。每当我们的发布流程发生变化时,我们都会更新该文档。

  React的每个发布渠道都是针对不同的用例设计的:

  最新版本适用于稳定的semver React版本。这是从npm安装React时得到的。这是您今天已经在使用的频道。将其用于所有面向用户的React应用程序。

  接下来跟踪React源代码存储库的master分支。将它们视为下一个次要版本的发行候选。使用它进行React和第三方项目之间的集成测试。

  实验性版本包含实验性API和稳定版本中不提供的功能。它们也跟踪master分支,但是启用了附加功能标志。使用它来尝试即将发布的功能。

  所有发行版都发布到npm,但是只有“最新”使用语义版本控制。预发行版(在“下一个”和“实验”通道中的版本)具有从其内容的哈希值生成的版本,例如,0.0.0-1022ee0ec用于“下一个”和0.0.0-experimental-1022ee0ec“实验”版本。

  面向用户的应用程序的唯一官方支持的发布渠道是Latest。提供下一个和实验版本仅用于测试目的,我们不保证行为在两个版本之间不会改变。它们不遵循我们用于Latest发布的semver协议。

  通过将预发行版发布到用于稳定发行版的同一注册表中,我们可以利用许多支持npm工作流程的工具,例如unpkg和CodeSandbox。

  二、最新频道

  最新是用于稳定React发布的渠道。它对应latest于npm 上的标签。这是所有交付给真实用户的React应用程序的推荐渠道。

  如果您不确定应该使用哪个频道,则为“最新”。如果您是React开发人员,那么这就是您正在使用的。

  您可以期望对“最新”的更新非常稳定。版本遵循语义版本控制方案。在我们的版本控制政策中了解有关我们对稳定性和增量迁移的承诺的更多信息。

  三、下一个频道

  Next频道是一个预发布频道,用于跟踪React存储库的master分支。我们在Next频道中使用预发行版本作为Latest频道的候选发行版本。您可以将Next视为Latest的超集,它的更新频率更高。

  最新的下一发行版和最新的最新发行版之间的更改程度与两个较小的semver版本之间的更改程度大致相同。但是,Next通道不符合语义版本控制。您应该期望在下一频道中的后续发行版之间偶尔会有重大更改。

  不要在面向用户的应用程序中使用预发行版。

  Next中的发行版next在npm上带有标签发布。版本是从构建内容的哈希值生成的,例如0.0.0-1022ee0ec。

  使用下一个渠道进行集成测试

  Next通道旨在支持React与其他项目之间的集成测试。

  对React的所有更改在发布给公众之前都要经过广泛的内部测试。但是,在整个React生态系统中使用了无数的环境和配置,因此我们不可能针对每一个进行测试。

  如果您是第三方React框架,库,开发人员工具或类似基础设施类型项目的作者,则可以通过定期针对最新版本运行测试套件来帮助我们为您的用户和整个React社区保持React的稳定变化。如果您有兴趣,请按照下列步骤操作:

  使用您喜欢的持续集成平台设置cron作业。CircleCI和Travis CI都支持Cron作业。

  在cron作业中,使用nextnpm上的标签将您的React软件包更新到Next频道中的最新React版本。使用npm cli:

  npm update react@next react-dom@next

  或纱线:

  yarn upgrade react@next react-dom@next

  针对更新的程序包运行测试套件。

  如果一切顺利,那就太好了!您可以期望您的项目将与下一个较小的React版本一起使用。

  如果发生意外中断,请提出问题以告知我们。

  使用此工作流程的项目是Next.js。(没有双关语!认真!)您可以参考他们的CircleCI配置作为示例。

  四、实验频道

  与Next类似,Experimental频道是一个预发布频道,用于跟踪React存储库的master分支。与Next不同,实验性发行版包含尚未准备好进行更广泛发行的其他功能和API。

  通常,对Next的更新伴随着对Experiment的相应更新。它们基于相同的源修订版,但是使用一组不同的功能标志构建。

  实验性发布的版本可能与Next和Latest的发布版本大不相同。不要在面向用户的应用程序中使用实验版本。您应该期望在实验频道中的各个发布之间进行频繁的重大更改。

  实验版发行时,experimental标签发布在npm上。版本是从构建内容的哈希值生成的,例如0.0.0-experimental-1022ee0ec。

  结语

  实验性发布有哪些内容?

  实验性功能尚未准备好向广大公众发布,在最终确定之前可能会发生巨大变化。有些实验可能永远不会完成-我们进行实验的原因是为了检验提议的变更的可行性。

  例如,如果我们在宣布Hooks时就已经存在实验频道,那么我们会在最新版本发布Hook之前几周将其发布到实验频道。

  您可能会发现针对实验性进行集成测试很有价值。这取决于你。但是,请注意,“实验”的稳定性甚至不如Next。我们不保证实验版本之间的任何稳定性。

  如何了解有关实验功能的更多信息?

  实验性功能可能会或可能不会记录。通常,直到即将在Next或Stable中交付实验之前,才会记录这些实验。如果未记录功能,则可能随附RFC。当我们准备宣布新实验时,我们将发布到React博客上,但这并不意味着我们将公开每个实验。今天内容就是这些了,明天见~

赞(8)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程