【问题标题】:What are the differences between Long Term Support (LTS) and Stable versions of Node.js?Node.js 的长期支持 (LTS) 和稳定版本之间有什么区别?
【发布时间】:2015-11-11 22:44:47
【问题描述】:

最初问:Node.js 4.x 分支与 LTS(长期支持)和 5.x 分支(列为稳定)有什么区别?

但这对于理解 6.x 和 7.x 以及未来的 8.x 和 9.x 之间的区别同样重要

一般来说,我总是倾向于最新版本的功能和性能(因为我现在做很多 ES6 / ES7)。有没有关于“稳定”分支如何准备好生产的任何信息?

【问题讨论】:

  • 还有什么你需要知道的,这篇博文没有涵盖吗? nodejs.org/en/blog/community/node-v5 。如果是,是什么?
  • 这是一个社区论坛,是node开发者的帖子。有来自开发团队之外的特定信息可能是相关的。
  • FWIW,这不是论坛,而是问答网站。这种格式不适合讨论,看来你更感兴趣的是什么?
  • 不,不是讨论,请参阅接受的答案。如果您总是要求人们通过文档或其他信息进行外部转换。而不是一个快速,简洁的答案。这个网站 100% 毫无意义。
  • 这个问题的答案表明 v5 是测试版是非常具有误导性的。 v5 是当前稳定 版本,适合生产使用。 V4 是一个长期支持版本,旨在使 Node.js 成为企业使用的可行选择。

标签: javascript node.js version v8 lts


【解决方案1】:

要了解差异,您需要了解 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

其中一个 cmets 中提到的官方 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 用户来说是一大福音,因此这也可能会影响您的决策。

【讨论】:

    【解决方案2】:

    4.x 是当前受支持的版本,类似于生产版本。 5.0 版本是稳定的,但它是即将发布的版本,并且应该一样对待它是一个测试版或发布候选版本。因此,您目前没有将 5.0 视为 Amazon Elastic Beanstalk 之类的选项。

    一旦 Stable 发布线成为 LTS,就没有新功能或中断 更改将添加到该版本中。

    Source

    【讨论】:

      【解决方案3】:

      发布类型

      • 当前:正在积极开发中。当前版本的代码位于 主要版本号的分支(例如, v10.x)。 Node.js 发布了一个新的 主要版本每 6 个月一次,允许进行重大更改。这发生在 每年的四月和十月。每年 10 月发布的版本都有支持 8个月的寿命。每年四月出现的版本转换为 LTS(见下文) 每年十月。

      • LTS:获得长期支持的版本,重点是稳定性 和安全。每个偶数编号的主要版本都将成为 LTS 版本。 LTS 版本获得 18 个月的 Active LTS 支持和另外 12 个月 维护。 LTS 发布行具有按字母顺序排列的代号, 从 v4 Argon 开始。没有重大更改或功能添加, 特殊情况除外。

      Source

      【讨论】: