4

从 AWS-Lambda 和无服务器框架开始,我对节点版本感到困惑:

AWS 帮助网站说(2016 年 3 月 21 日)

AWS Lambda 支持以下运行时版本:

Node.js:v0.10.36

所以我确实在我的本地机器上安装了 Node.js v0.10.36。通过安装最新的(v 0.4.2)无服务器框架

npm install serverless -g

它给出以下警告:

npm WARN 引擎 serverless@0.4.2: 想要: {"node":">=4.0"} (当前: {"node":"0.10.36","npm":"1.4.28"})

我认为在本地拥有与 AWS 相同的版本可能有助于拥有一致的开发环境......我错了吗?我应该在本地运行什么 Node.js 版本才能充分利用无服务器?

4

2 回答 2

6

无服务器框架需要 Node.js v4.0 或更高版本。v4.x 或 v5.x 行中的任何版本的 Node.js 都应该可以工作。

您是正确的,AWS Lambda 目前仅支持 Node.js v0.10.36。在 Node.js v4.0 上构建无服务器框架的决定是因为预期 AWS Lamabda 最终将支持 Node.js v4.0 或更高版本。

在为 AWS Lambda 开发代码时,您应该继续只使用与 Node.js v0.10.36 兼容的功能。如果您对框架做出任何贡献,您可以使用 v4.0+ 中提供的 Node.js 功能。

另一种选择是使用Babelify将您的 ES2015 代码上传到 AWS Lambda。这允许您在 ES2015 中进行开发,而无需等待 AWS Lambda 正式支持它。每次使用优化器插件使用无服务器框架进行部署时,都可以自动完成此操作。

更新:现在存在一个新选项,无服务器 Babel 运行时。这比 Optimizer 所做的更进一步,并在运行时本身内部使用 Babel。

更新 2:AWS Lambda 现在支持 Node.js v4.3。

于 2016-03-21T18:46:15.453 回答
1

如果您从一个全新的项目开始,我会极力避免从节点 0.10.x 开始。该版本此时刚刚收到重要的安全修复,并且仅持续五个月(直到 2016 年 10 月)。

Node.js 采用了常见的长期支持 (LTS) 模式来保持发布的及时和稳定。这是当前节点的 LTS 计划。

我强烈建议从版本 4 或 5 开始,这取决于您对更改的兴趣并让您的项目保持最新。您将能够利用 0.10/0.12 版本中的众多新功能,并更好地为ES6做好准备。

于 2016-05-21T15:38:54.870 回答