19

大卫在他的回购中:

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

:他怎么可能让它发挥作用?我该如何做同样的事情并从其他目录成功部署功能/functions

谢谢

firebase.json

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

2 回答 2

36

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

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

该“源”属性定义了包含将在 Cloud Functions 上运行的代码的文件夹的名称。您可以将其更改为您想要的任何内容。

于 2018-02-21T22:40:00.060 回答
11

如果您想使用您的根目录作为您的函数文件夹,只需将您的source密钥更改.firebase.json.

  "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

于 2019-07-12T16:00:48.297 回答