React: 现代化发布流程

创建于 2016-04-29  ·  3评论  ·  资料来源: facebook/react

现在做一个 React 版本的工作量太大了。 在这一点上对我来说主要是肌肉记忆,但任何人都应该很容易做到这一点。 从历史上看,我一直手动执行某些步骤,因为我把事情搞砸了,希望能够暂停并仔细检查。

造成困难的原因有以下几点:

  • 使用 react-bower repo 作为第一个推送目标

    • 这是 fb.me 链接生成/CDN 化需要在内部 FB 基础设施上进行的结果

  • 跨多个存储库的手动步骤
  • 手动版本修改
  • 资产需要在多个地方,跨分支复制

一些想法:

  • 我们应该能够区分预发布和最终发布。 在任何时候发布新的 alpha 应该是一个命令,并且它们应该是轻量级的。
  • 最终版本需要更多,因为它们将由人们默认安装并且有额外的要求(例如变更日志,多个地方的资产)
  • npm run release然后做所有的事情。 这可能是一个互动的过程
  • 开始使用 GitHub 发布 API 来存储构建资产,减少步骤
  • 设置 cdn.reactjs.org 并在那里托管我们的构建,完全放弃 fb.me(风险,我们必须永远运行它......)

    • 替代方案:使用现有的 CDN 并确保我们可以根据命令部署版本(基于拉取的自动更新可能会导致延迟,例如 jsfiddle,我们的教程需要立即可用的资产)

  • 调查 lerna,可能对我们拥有的多个软件包有所帮助,尽管我们理想地希望解开这些版本
Build Infrastructure

最有用的评论

看来我们现在实际上处于一个好地方。
(感谢@bvaughn)

所有3条评论

替代方案:使用现有的 CDN 并确保我们可以根据命令部署版本(基于拉取的自动更新可能会导致延迟,例如 jsfiddle,我们的教程需要立即可用的资产)

使用 Redux,我们一直在引导人们访问 @mjackson 的http://npmcdn.com。

感谢您的提及,@gaearon。 一段时间以来,我一直在向@zpao暗示我希望他给npmcdn一个机会。 ;)

上个月,我们为超过 1600 万的独立访问者提供了超过 100M 的请求,因此我们可能已经准备好处理 React 会抛出的那种流量。 我目前正在努力争取一些赞助商和服务条款,以便人们可以知道他们可以从中得到什么。

至于延迟,我们目前指示我们的 CDN (CloudFlare) 将重定向缓存 5 分钟。 因此,例如对https://npmcdn.com/react@15/dist/react.min.js的请求将在推送到 npm 后最多 5 分钟重定向到最新版本。

看来我们现在实际上处于一个好地方。
(感谢@bvaughn)

此页面是否有帮助?
0 / 5 - 0 等级