Node.js 版本和谷歌云函数

Node.js version and Google Cloud functions

提问人:Leo 提问时间:4/24/2018 最后编辑:Leo 更新时间:7/2/2019 访问量:8561

问:

当我使用以下命令启动本地 Firebase 服务器时,我收到此消息:firebase serve

警告:您使用的是 Node.js v8.9.4,但 Google Cloud Functions 仅支持 v6.11.5。

但是没有关于该怎么做的信息。我需要做什么才能将 Node.js 降级到 v6.11.5?我是否应该仅将该版本用于 Firebase 项目,而将最新版本的 Node.js 用于其他项目?在这种情况下,我该怎么做?


编辑:警告现在看起来像这样,我无法运行一个新的几乎为空的项目:

Warning: You're using Node.js v8.9.4 but Google Cloud Functions only supports v6.11.5.
!  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
!  functions: Error from emulator. mod.hasOwnProperty is not a function

所以我真的认为我必须降低 Node.js。但我不知道如何安全地做到这一点。嗯,看看 http://nodejs.org/ 我什至找不到 v6.11.5 版本?


编辑2:如果解决了问题,则刚刚签入新项目。(实际上没有更新的软件包。npm update --dev

节点 .js 火库 npm 谷歌云函数 火库 cli

评论


答:

12赞 Doug Stevenson 4/24/2018 #1

这只是一个警告。如果你知道自己在做什么,你可以忽略它。它告诉您,函数的本地仿真(在节点 8.9.4 上运行)可能与该函数部署到 Cloud Functions(运行 6.11.5)时将执行的操作不完全匹配。但是,只要您不使用节点 6.11.5 上不可用的任何节点功能,就不会有问题。我一直使用较新版本的节点进行本地测试,没有问题。

评论

0赞 Leo 4/25/2018
似乎有一些麻烦(参见 Node.js v8 对云函数的支持 [66770141] - issuetracker.google.com/issues/66770141)。我不知道什么因此而不起作用,但发生在我身上的是,在本地工作的东西在部署的服务器上不起作用。
1赞 Doug Stevenson 4/25/2018
也许您使用了节点 6 中不可用的语言功能,例如 async/await。如果你坚持节点 6 支持的东西,就没有问题。
0赞 Leo 4/25/2018
或。但我自己没有使用 async/await。不过,某些模块中可能存在不支持的功能。有什么办法可以找出答案吗?有什么工具可以检查吗?
0赞 sjsam 2/13/2021
我只是尝试在本地机器中部署具有较新节点版本的计划函数,但被拒绝并显示模糊的错误消息。Firebase 支持团队要求我降级节点版本,它奏效了。这里的问题是日志消息通常不会指向正确的方向:/
2赞 Amruth Bahadursha 5/17/2018 #2

您可以使用 GitHub 故障排除指南中提供的命令卸载并重新安装 Cloud Functions 模拟器和 Firebase 工具。由于您使用的是 Firebase,因此请按照“Firebase 工具”的说明进行操作。

评论

0赞 Leo 5/18/2018
谢谢,但我认为这在这里无济于事。它没有告诉如何降级 Node.js。
1赞 Amruth Bahadursha 5/18/2018
@Leo - 您需要重新安装 Node.js 以通过在安装期间指定版本号来降级,即 6.11.5,如此处所述 abeautifulsite.net/how-to-upgrade-or-downgrade-nodejs-using-npm。希望这会有所帮助。
0赞 Leo 5/18/2018
谢谢,这看起来像我要找的。我假设这里是?(, , )在 Windows 上运行此命令时没有命令。nnodesudo n stablesudo n 4.4.2sudo npm install -g nn
0赞 Amruth Bahadursha 5/19/2018
@Leo - 以下是要在 Windows 上安装的命令,包括用于安装特定版本的命令。github.com/felixrieseberg/npm-windows-upgrade
1赞 easycheese 12/27/2018 #3

这个问题的答案中列出了几种工具

对于 Windows,我刚刚成功地使用 nvmw 来完成相同的任务。

2赞 Brian Ogden 2/3/2019 #4

Node v8 现在可用于云函数:https://firebase.googleblog.com/2018/08/cloud-functions-for-firebase-config-node-8-timeout-memory-region.html

所以我相信这个警告真的可以忽略不计......

1赞 Usama Tahir 7/2/2019 #5

您将在此处获得 nvm

安装 nvm. 只需使用此命令即可 “NVM install 8.9.1 64bit”您可以根据您的系统配置使用此处的任何版本或64bit 32bit 安装后使用 “NVM 使用 8.9.1”