如何在转译文件夹中部署云功能?

时间:2019-02-21 17:19:49

标签: firebase npm google-cloud-functions

在使用Firebase托管和云功能的Firebase项目中,我的文件结构存在一些问题。

注意:我认为我的问题与powershell $RESOURCE_DIR%RESOURCE_DIR问题无关。

我当前的文件结构是:

project folder
  functions
    dist
      index.js
    src
      index.js
  package.json

firebase.json
package.json

当我的index.js文件位于我的 functions 文件夹的根目录中时,一切正常。因为这是firebase.json查找要部署的函数代码的默认设置。

当我在 functions 文件夹中创建 src public 文件夹时,问题开始了。因为现在我将在部署之前从 src 转换为 public

问题1:

我的 functions 文件夹中是否需要firebase.json?由于 functions 文件夹和firebase.json文件是由firebase init命令创建的,所以我认为没有必要,尽管这使我有些困惑,因为我已经看过Firebase项目仅使用功能(不托管),而firebase.json停留在其中。

继续...由于我更改了函数的默认文件夹,因此我进入了firebase.json文件并在其上添加了source属性,因为index.js不在文件中功能文件夹的根目录(默认)了:

firebase.json

"functions": {
    "source":"functions/public",
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint"
    ]
  },

但是现在我得到了这个错误,因为很明显firebase试图运行predeploy script,并且它正在我的 public 文件夹中寻找package.json文件,而不是找到它在功能根文件夹中。

enter image description here

即使我删除了predeploy脚本,它仍然尝试在我的 public 文件夹中找到一个package.json,但出现此错误:

enter image description here

问题2

我能做的是摆脱 public 文件夹,并将我的 src 文件夹转换为 functions 文件夹的根目录并使用上述默认行为。但是有办法解决吗?

0 个答案:

没有答案