最初问: Node.js 4.x分支与LTS(长期支持)和5.x分支(列为稳定版)有什么区别?
但这与理解6.x和7.x之间的区别以及将来的8.x和9.x
同样重要。通常,我总是倾向于最新版本的功能和性能(因为我现在做了很多ES6 / ES7)。是否有任何有关生产如何准备好的信息"稳定"分支机构是?
答案 0 :(得分:67)
要了解差异,您需要了解为什么存在长期支持(LTS)版本的Node。
Node LTS主要针对企业用途,可能会对频繁更新,广泛的采购程序以及冗长的测试和质量要求产生更大的阻力。
来自Node LTS工作组成员的Rod Vagg:
为Node建立LTS计划的重点是在现有的稳定版本周期之上构建,通过在可预测的时间表上提供具有明确定义的扩展支持生命周期的新版本。虽然这似乎与“早期发布,经常发布”的开源传统不一致,但它是企业应用程序开发和运营团队的基本要求。它还影响那些为Node.js提供专业支持的公司。
https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd#.za353bn08
其中一条评论中提到的官方节点帖子也很好地解释了这一点:
https://nodejs.org/en/blog/community/node-v5/
有时会误解奇数版本号(v5,v7)是" beta"下一个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用户来说这是一个很大的好处,所以这也可能影响您的决策。
答案 1 :(得分:7)
4.x是当前支持的版本,类似于生产版本。 5.0版本是稳定的,但它是即将推出的版本,应该被视为喜欢它是测试版或候选版。因此,您目前在Amazon Elastic Beanstalk等内容中看不到5.0作为选项。
一旦Stable释放线变为LTS,没有新功能或破坏 更改将添加到该版本。
答案 2 :(得分:0)