web-dev-qa-db-ja.com

「/関数」以外のディレクトリから関数をデプロイする方法は?

彼のリポジトリでのDavid:

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

メインルートにFirebase関数index.jsを含むファイルがあり、/functionsディレクトリにnotがあります。

ただし、同じことを行って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": "/"
  }
}
11
Patrickkx

Firebase CLIで作成したプロジェクトワークスペースには、次のようなCloud Functionsのスタンザを持つfirebase.jsonというファイルが含まれています。

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

その「ソース」プロパティは、Cloud Functionsで実行されるコードを含むフォルダーの名前を定義します。これを好きなように変更できます。

19
Doug Stevenson

ルートディレクトリを関数フォルダーとして使用する場合は、.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

1
Alex Sanchez