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

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

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

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

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

节点LTS主要针对企业用途,对频繁更新,广泛的采购程序以及冗长的testing和质量要求可能有更多的阻力。

Rod Vagg是Node LTS工作组的成员:

为Node创buildLTS计划的重点是在现有的稳定发布周期的基础上,通过提供具有明确定义的扩展支持生命周期的可预测时间表的新版本。 虽然这看起来可能与“早发布,经常发布”的开源传统不一致,但这是企业应用程序开发和运营团队的基本要求。 它也影响到为Node.js提供专业支持的公司…

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

其中一个评论中提到的官方Nodepost也做了很好的解释:

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

有时会误解奇数版本(v5,v7)是下一个LTS版本的“testing版”。 这是一个在其他项目中使用的约定,但不在Node中,并且有些误导。 事实上,下一个LTS版本是从当前版本的特定版本中select的,通常这个版本是偶数版本(v6,v8)。 这并不是说最新的版本是beta版,而是LTS版本满足一些组织的特定需求。

为了参考一下Firefox的扩展支持版本( https://www.mozilla.org/en-US/firefox/organizations/faq/ )或Ubuntu的LTS版本( https://wiki.ubuntu.com/LTS ) 。 我不认为有人会build议Firefox的最新版本是testing版,大多数用户应该坚持使用旧的ERS版本。

通常,如果您能够跟上最新的稳定和未来的Node版本,则应该这样做。 这些是稳定和生产就绪版本与优秀的社区支持。 不稳定的和实验性的function被保留在构build和运行时间标志之后,不应该影响你的日常操作。

一般来说,我总是倾向于最新版本的function和性能(因为我现在做ES6 / ES7的分配)

这对我来说,稳定的版本将会适合你的需求。 这将使您能够访问基础JavaScript引擎(V8或Chakra)提供的最新和最好的语言function,

值得注意的是:v4(和之前的版本)和v5之间的显着区别在于v4是以npm v2运送的,而v5是以npm v3运送的。 对于你的项目如何处理peerDependancies,npm的v3有一些潜在的重大改变。 现在,npm v3试图安装依赖关系,尽可能平坦,避免重复项目可能会影响你的项目,但对于Windows用户来说,这是一个很大的好处,所以这也可能影响你的决策。

4.x是当前正在受到支持的版本,类似于生产版本。 5.0版本是稳定的,但它是即将到来的版本,应该被视为一个testing版或候选版本。 因此,您目前在Amazon Elastic Beanstalk之类的东西中看不到5.0。

一旦稳定版本行变为LTS,则不会在该版本中添加任何新function或重大更改。

资源