Node.js 应用程序的 firebase deploy 命令导致错误:`runtime` field is required but was not found in firebase.json
Posted
技术标签:
【中文标题】Node.js 应用程序的 firebase deploy 命令导致错误:`runtime` field is required but was not found in firebase.json【英文标题】:firebase deploy command for Node.js application results in Error: `runtime` field is required but was not found in firebase.json 【发布时间】:2021-01-10 09:29:13 【问题描述】:我正在尝试在 firebase 中部署我的 Node.js 应用程序,但是当我运行命令时,它会导致错误 Error:
runtime 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"
]
收到错误后我改成这样:
"hosting":
"public": "public",
"runtime": "nodejs10",
"rewrites": [
"source": "**",
"function": "app"
]
仍然收到错误,我有点困惑我需要在哪里添加命令"runtime": "nodejs10",
。我尝试查找但找不到任何关于类似问题的相关文章,请任何人帮助我。
【问题讨论】:
在 Stack Overflow 上,不显示文字图片。将文本复制到问题中并设置格式,以便于阅读、复制和搜索。 【参考方案1】:要设置运行时,请在初始化期间在您的函数/目录中创建的 package.json 文件的 engines
字段中设置版本。例如,要仅使用版本 10,请在 package.json 中编辑此行:
"engines":"node":"10"
引擎字段是必需的;它必须指定受支持的 Node.js 版本之一,以便您部署和运行函数。目前,firebase init 函数将此字段设置为节点 10
【讨论】:
【参考方案2】:错误消息说将其添加到“functions”部分。您将其添加到“托管”部分,这将不起作用。运行时选择适用于 Cloud Functions,而不是 Firebase 托管。它们是具有不同配置的不同产品。
该消息对于要添加的内容也不完全准确。
将运行时添加到documentation 中讨论的函数部分:
"functions":
"engines": "node": "10"
【讨论】:
文档说将"engines": ...
放入您的函数项目的package.json
。 或者您可以将"functions ""runtime": "nodejs14"
添加到您的firebase.json
,尽管文档中没有提到这一点。以上是关于Node.js 应用程序的 firebase deploy 命令导致错误:`runtime` field is required but was not found in firebase.json的主要内容,如果未能解决你的问题,请参考以下文章
使用 node.js 和 react.js 客户端启动一个 firebase 功能项目
如何通过 firebase 托管在 firebase 上托管 node.js Web 应用程序(包含多个文件夹)?
在 Firebase 上部署使用 node.js 服务器的应用程序
如何为特定令牌、颤振、firebase 消息传递和 node.js 发送通知