最初询问:具有LTS(长期支持)的Node.js 4.x分支与5.x分支(列为稳定版)之间有什么区别?
但这对于理解6.x和7.x之间的区别以及将来的8.x和9.x之间的区别同样重要。
通常,我总是倾向于最新版本的功能和性能(因为我现在做很多ES6 / ES7)。是否有关于“稳定”分支准备就绪的信息?
最初询问:具有LTS(长期支持)的Node.js 4.x分支与5.x分支(列为稳定版)之间有什么区别?
但这对于理解6.x和7.x之间的区别以及将来的8.x和9.x之间的区别同样重要。
通常,我总是倾向于最新版本的功能和性能(因为我现在做很多ES6 / ES7)。是否有关于“稳定”分支准备就绪的信息?
Answers:
要了解差异,您需要了解为什么存在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版本的“ beta”。这是其他项目中使用的约定,而不是Node中使用的约定,在某种程度上具有误导性。实际上,下一个LTS版本是从当前版本的特定版本中选择的,并且通常是偶数版本(v6,v8)。并不是说最新版本是beta版,而是LTS版本满足了某些组织的特定需求。
作为参考,请查看Firefox的扩展支持版本(https://www.mozilla.org/en-US/firefox/organizations/faq/)或Ubuntu的LTS版本(https://wiki.ubuntu.com/LTS) 。我认为没有人会建议最新版本的Firefox是Beta版,并且大多数用户都应该使用较旧的ERS版本。
通常,如果您能够跟上最新的稳定版本和将来的Node版本,则应该这样做。这些是稳定且可立即投入生产的发行版,具有出色的社区支持。不稳定的和试验性的功能保留在生成和运行时标志的后面,不应影响您的日常操作。
通常,我总是倾向于功能和性能的最新版本(因为我现在分配ES6 / ES7)
这向我建议,稳定的版本及以后的版本将非常适合您的需求。这将使您能够访问底层JavaScript引擎(V8或Chakra)提供的最新和最强大的语言功能。
注意:v4(或更早版本)与v5之间的显着区别是v4随npm v2一起提供,而v5随npm v3一起提供。npm的v3对于您的项目在处理peerDependancies方面有一些潜在的重大更改。npm v3现在尝试尽可能平坦地安装依赖关系的方式,避免重复操作可能会影响您的项目,但对Windows用户而言却是一大福音,因此这也可能影响您的决策。