如何从' / functions'以外的其他目录部署函数?

时间:2018-02-21 22:30:44

标签: javascript firebase google-cloud-functions firebase-cli

大卫在他的回购中说:

https://github.com/davideast/react-ssr-firebase-hosting

主根中有firebase函数index.js/functions目录中

但是,如果我这样做并将我的index.js文件放到主根,如果我firebase deploy --only functions它在控制台中说:

i  deploying functions

Error: functions\index.js does not exist, can't deploy Firebase Functions

:他怎么可能让它发挥作用?如何从/functions以外的其他目录中成功完成并部署功能?

由于

firebase.json

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "function": "ssrapp"
      }
    ]
  },
  "functions": {
     "source": "/"
  }
}

2 个答案:

答案 0 :(得分:13)

使用Firebase CLI创建的项目工作区包含一个名为firebase.json的文件,该文件具有云函数的节,如下所示:

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

那"来源" property定义包含将在Cloud Functions上运行的代码的文件夹的名称。您可以将其更改为您想要的任何内容。

答案 1 :(得分:0)

如果要将根目录用作功能文件夹,只需将D中的source键更改为.

firebase.json

这将在根目录中查找您的 "functions": { "source": ".", "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint", "npm --prefix \"$RESOURCE_DIR\" run build" ] } 文件(请记住也将所有其他文件移动到您的根目录中)。

文档:https://firebase.google.com/docs/functions/manage-functions#deploy_functions