Firebase CLI:“功能:警告!PACKAGE.JSON中未发现任何引擎字段。默认为NODE 6运行时。”

Dou*_*son 9 firebase google-cloud-functions firebase-cli

我将Firebase CLI升级到了6.8.0版。现在,当我部署函数时,我收到一条警告消息,如下所示:

?功能:警告!在PACKAGE.JSON中找不到引擎字段。默认为NODE 6运行时。如果package.json中未指定引擎字段,则将从2019年6月1日开始阻止部署。要解决此问题,请将以下行添加到package.json中:

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

我应该怎么做以避免此错误消息?

Dou*_*son 17

由于nodejs 6的长期支持(LTS)已过期,因此现在不建议使用Cloud Functions上的nodejs 6运行时,并将其删除。您可以在此处查看各种版本的节点的LTS时间表。

现在显示该消息是因为Firebased CLI以前将节点6作为默认节点,但它不希望中断您的部署。您必须明确要部署的目标节点版本。您可以听取警告消息的建议并指定节点6,但是由于节点6是EOL,因此您应该至少定位到节点8,而现在它已经超出beta了。

要指示所需的节点运行时版本,请编辑package.json并为其添加一个新的顶级子级,该子级如下所示,并带有一个名为“ engines”的子级:

{
  // other configurations here…
  "dependencies": {
  },
  // Add an “engines” child to choose a node version, here it’s node 8.
  "engines": {
    "node": "8"
  }
}
Run Code Online (Sandbox Code Playgroud)

Firebase CLI创建的文档和默认项目模板中也反映了此要求。

如果您专门针对节点6,则将看到以下警告消息:

?功能:不建议将功能部署到Node 6运行时。节点8可用并且是推荐的运行时。

  • 只是为了精确起见,package.json文件位于functions /文件夹中。 (4认同)