Node.js 的长期支持 (LTS) 和稳定版本之间有什么区别?

What are the differences between Long Term Support (LTS) and Stable versions of Node.js?

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

但这同样适用于了解 6.x 和 7.x 之间的区别,以及将来 8.x 和 9.x

一般来说,我总是倾向于最新版本的功能和性能(因为我现在做很多 ES6 / ES7)。是否有任何关于 "stable" 分支的生产准备情况的信息?

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

Once a Stable release line becomes LTS, no new features or breaking changes will be added to that release.

Source

要了解差异,您需要了解为什么存在长期支持 (LTS) 版本的 Node。

Node LTS 主要针对企业使用,在这种情况下,频繁更新、广泛的采购程序以及冗长的测试和质量要求可能会有更多阻力。

来自 Node LTS 工作组成员 Rod Vagg:

The point of establishing an LTS plan for Node is to build on top of an existing stable release cycle by delivering new new versions on a predictable schedule that have a clearly defined extended support lifecycle. While this may seem at odds with the open source tradition of “release early, release often” it is an essential requirement for enterprise application development and operations teams. It also affects companies ... that provide professional support for Node.js.

https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd#.za353bn08

其中一条评论中提到的官方节点 post 也很好地解释了这一点:

https://nodejs.org/en/blog/community/node-v5/

有时会误解奇数版本号的发行版(v5、v7)是下一个 LTS 发行版的 "beta"。这是在其他项目中使用但在 Node 中没有使用的约定,并且有点误导。事实上,下一个 LTS 版本是从当前版本的特定点发布中选择的,这通常是偶数版本发布(v6、v8)。这并不是说最新版本是测试版——而是说 LTS 版本满足了一些组织的特定需求。

有关参考点,请查看 Firefox 的扩展支持版本 (https://www.mozilla.org/en-US/firefox/organizations/faq/) or Ubuntu's LTS releases (https://wiki.ubuntu.com/LTS)。我认为没有人会建议最新版本的 Firefox 是测试版并且大多数用户应该坚持使用旧的 ERS ​​版本。

一般来说,如果您能够跟上最新的稳定版本和未来的 Node 版本,您应该这样做。这些是稳定的 生产就绪 版本,具有出色的社区支持。不稳定和实验性功能保留在构建和运行时标志之后,不应影响您的日常操作。

Generally I always lean towards the latest version for features and performance (as I now do allot of ES6 / ES7)

这向我表明,稳定版及更高版本将很好地满足您的需求。这将使您能够访问底层 JavaScript 引擎(V8 或 Chakra)

提供的最新最好的语言功能

值得注意:v4(及更早版本)和 v5 之间的显着区别是 v4 随 npm v2 一起提供,而 v5 随 npm v3 一起提供。 npm v3 在如何处理 peerDependancies 方面对您的项目有一些潜在的破坏性变化。 npm v3 现在尝试尽可能平坦地安装依赖项自己的依赖项并避免重复项的方式可能会影响您的项目,但对 Windows 用户来说是一个很大的福音,因此这也可能会影响您的决策。

发布类型

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

  • LTS:获得 Long-term 支持的版本,重点是稳定性 和安全。每个 even-numbered 主要版本都将成为 LTS 版本。 LTS 版本获得 18 个月的 Active LTS 支持和另外 12 个月 维护。 LTS 发行版有 alphabetically-ordered 个代号, 从 v4 氩气开始。没有重大更改或功能添加, 特殊情况除外。

Source