Node.js 应用程序的 firebase deploy 命令导致错误:`runtime` 字段是必需的,但在 firebase.json 中找不到

BAT*_*008 8 node.js firebase firebase-hosting google-cloud-functions firebase-cli

我正在尝试在 firebase 中部署我的 Node.js 应用程序,但是当我运行该命令时,它会导致Error: 运行时错误 field is required but was not found in firebase.json.

在此处输入图片说明

我尝试运行该命令,firebase serve --only functions,hosting并且在本地一切正常,因此我想部署并向我的同事提供链接以供用户测试,但我无法使用该firebase deploy命令执行此操作。

我尝试将命令添加到我的firebase.json文件中,但仍然没有运气。这是我的原始firebase.json文件:

{
  "hosting": {
    "public": "public",
    "rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

收到错误后,我改为:

{
  "hosting": {
    "public": "public",
    "runtime": "nodejs10",
    "rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

仍然出现错误,我有点困惑我到底需要在哪里添加命令"runtime": "nodejs10",。我试图寻找但找不到任何关于类似问题的相关文章,任何人都可以帮助我。

Dou*_*son 7

错误消息说要将其添加到“函数”部分。您将其添加到“托管”部分,这将不起作用。运行时选择是针对 Cloud Functions 的,而不是 Firebase 托管。它们是具有不同配置的不同产品。

该消息对于要添加的内容也不完全准确。

文档中所述,将运行时添加到函数部分:

{
  "functions": {
    "engines": {"node": "10"}
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 文档说将 `"engines": ...` 放入函数项目的 **`package.json`** 中。**或者**您可以将 `{"functions "{"runtime": "nodejs14"}}` 添加到 `firebase.json` 中,尽管文档中没有提到这一点。 (2认同)