最初问:Node.js 4.x 分支与 LTS(长期支持)和 5.x 分支(列为稳定)有什么区别?
但这对于理解 6.x 和 7.x 以及未来 8.x 和 9.x 之间的区别同样重要
一般来说,我总是倾向于最新版本的特性和性能(因为我现在做了很多 ES6 / ES7)。是否有任何关于“稳定”分支如何准备好生产的信息?
最初问:Node.js 4.x 分支与 LTS(长期支持)和 5.x 分支(列为稳定)有什么区别?
但这对于理解 6.x 和 7.x 以及未来 8.x 和 9.x 之间的区别同样重要
一般来说,我总是倾向于最新版本的特性和性能(因为我现在做了很多 ES6 / ES7)。是否有任何关于“稳定”分支如何准备好生产的信息?
要了解差异,您需要了解为什么存在 Node 的长期支持 (LTS) 版本。
Node LTS 主要针对可能对频繁更新、广泛的采购程序以及冗长的测试和质量要求有更大阻力的企业使用。
来自 Node LTS 工作组成员 Rod Vagg:
为 Node 建立 LTS 计划的目的是在现有稳定发布周期的基础上构建,方法是按照可预测的时间表交付具有明确定义的扩展支持生命周期的新版本。虽然这似乎与“早发布,经常发布”的开源传统不一致,但它是企业应用程序开发和运营团队的基本要求。它还影响到为 Node.js 提供专业支持的公司。
https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd#.za353bn08
其中一条评论中提到的官方 Node 帖子也很好地解释了这一点:
https://nodejs.org/en/blog/community/node-v5/
有时会误解为奇数版本号版本(v5、v7)是下一个 LTS 版本的“测试版”。这是在其他项目中使用但在 Node 中没有使用的约定,并且有些误导。事实上,下一个 LTS 版本是从当前版本的特定点版本中选择的,这通常是一个偶数版本(v6、v8)。并不是说最新版本是测试版,而是 LTS 版本满足了某些组织的特定需求。
如需参考,请查看 Firefox 的扩展支持版本 ( https://www.mozilla.org/en-US/firefox/organizations/faq/ ) 或 Ubuntu 的 LTS 版本 ( https://wiki.ubuntu.com/LTS ) . 我认为没有人会建议最新版本的 Firefox 是测试版,并且大多数用户应该坚持使用旧 ERS 版本。
通常,如果您能够跟上最新的稳定和未来的 Node 版本,您应该这样做。这些是稳定且可用于生产的版本,具有出色的社区支持。不稳定和实验性功能保留在构建和运行时标志后面,不应影响您的日常操作。
一般来说,我总是倾向于最新版本的功能和性能(因为我现在分配 ES6 / ES7)
这将向我表明稳定版本及更高版本将很好地满足您的需求。这将使您能够访问底层 JavaScript 引擎(V8 或 Chakra)提供的最新和最强大的语言功能
注意:v4(和更早版本)和 v5 之间的一个显着区别是 v4 附带 npm v2 而 v5 附带 npm v3。npm v3 在处理 peerDependancies 方面对您的项目有一些潜在的重大变化。npm v3 现在尝试尽可能平坦地安装依赖项自己的依赖项并避免重复的方式可能会影响您的项目,但对 Windows 用户来说是一大福音,因此这也可能会影响您的决策。
4.x 是当前受支持的版本,类似于生产版本。5.0 版本是稳定的,但它是即将发布的版本,应该被视为测试版或候选发布版。因此,您目前看不到 5.0 作为 Amazon Elastic Beanstalk 之类的选项。
一旦 Stable 发布线成为 LTS,将不会向该版本添加新功能或重大更改。
当前:正在积极开发中。当前版本的代码位于其主要版本号的分支中(例如, v10.x)。Node.js 每 6 个月发布一个新的主要版本,允许进行重大更改。这发生在每年的四月和十月。每年 10 月发布的版本的支持期限为 8 个月。每年 4 月发布的版本会在每年 10 月转换为 LTS(见下文)。
LTS:获得长期支持的版本,重点是稳定性和安全性。每个偶数编号的主要版本都将成为 LTS 版本。LTS 版本获得 18 个月的Active LTS支持和另外 12 个月的维护。LTS 发布行具有按字母顺序排列的代号,从 v4 Argon 开始。除某些特殊情况外,没有重大更改或功能添加。