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

How to deploy functions from other directory than '/functions'?

大卫在他的仓库中:

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

在主根目录中有 index.js 具有 firebase 函数的文件,在 /functions 目录中 没有

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

i  deploying functions

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

Q:他怎么可能让它起作用?我怎样才能从 /functions 以外的其他目录执行相同的操作并成功部署功能?

谢谢

firebase.json

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

您使用 Firebase CLI 创建的项目工作区包含一个名为 firebase.json 的文件,其中包含如下所示的 Cloud Functions 节:

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

"source" 属性 定义包含将 运行 用于 Cloud Functions 的代码的文件夹的名称。您可以将其更改为任何您想要的。

如果您想将根目录用作函数文件夹,只需将 firebase.json.

中的 source 键更改为 .
  "functions": {
    "source": ".",
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }

这将在根目录中查找您的 index.js 文件(请记住将所有其他文件也移至您的根目录)。

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