【问题标题】:Node.js version and Google Cloud functionsNode.js 版本和 Google Cloud 功能
【发布时间】:2018-10-04 16:55:19
【问题描述】:

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

警告:您使用的是 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 解决了问题,只需签入新项目。它没。 (实际上没有更新的包。)

【问题讨论】:

    标签: node.js firebase npm google-cloud-functions firebase-cli


    【解决方案1】:

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

    【讨论】:

    • 似乎有些麻烦(参见 Node.js v8 对云功能的支持 [66770141] - issuetracker.google.com/issues/66770141)。我不知道究竟是什么不工作,但它发生在我身上,在本地工作的东西在部署的服务器上不起作用。
    • 也许您使用了节点 6 中不可用的语言功能,例如 async/await。如果你坚持节点 6 支持的东西,就没有问题。
    • 也许吧。但我自己并没有使用 async/await。不过,某些模块中可能存在不支持的功能。有什么办法可以查到吗?有什么工具可以检查吗?
    • 我刚刚尝试在我的本地机器上部署一个具有较新节点版本的计划函数,但它被拒绝并出现模糊的错误消息。 Firebase 支持团队要求我降级节点版本并且它起作用了。这里的问题是日志消息并不经常指向正确的方向:/
    【解决方案2】:

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

    【讨论】:

    • 谢谢,但我认为这对这里没有帮助。它没有说明如何降级 Node.js。
    • @Leo - 您需要通过在安装期间指定版本号来重新安装 Node.js 以降级,为您指定 6.11.5,如此处所述abeautifulsite.net/how-to-upgrade-or-downgrade-nodejs-using-npm。希望这会有所帮助。
    • 谢谢,这看起来像我要找的。我假设这里的nnode? (sudo n stable, sudo n 4.4.2, sudo npm install -g n) 在 Windows 上运行时没有命令 n
    • @Leo - 以下是在 Windows 上安装的命令,包括安装特定版本的命令。 github.com/felixrieseberg/npm-windows-upgrade
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      这个question的答案中列出了几个工具

      对于 Windows,我刚刚使用 nvmw 成功完成了同样的任务。

      【讨论】:

        【解决方案5】:

        You will get the nvm here

        安装 nvm 后。 只需使用此命令 “nvm install 8.9.1 64bit”你可以根据你的系统配置在这里使用任何版本或64bit 32bit 安装后使用 “nvm 使用 8.9.1”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-20
          • 2020-02-05
          • 2015-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-01
          相关资源
          最近更新 更多