削除しないでくださいvalidate_template = true template_path = .github / ISSUE_TEMPLATE / bug_report.mdFirebaseコミュニティに貢献していただきありがとうございます。 md5-cd82511516d4d120ac6f38b938897bc8ええ、私たちは間違いなく完璧ではありません! このテンプレートを使用し、問題を開くときに最小限の再現を含めてください。 問題の解決方法をご存知の場合は、プルリクエストを作成してください。喜んで確認させていただきます。 md5-d1dc1414712186318d009e8257a27e48すばらしいです。製品を改善する方法を聞くのが大好きです。 ただし、このテンプレートを使用して機能リクエストを送信しないでください。 機能リクエストを次のアドレスに送信してください:https://firebase.google.com/support/contact/bugs-features/ md5-a11e3d9ea91af19a593bf84612124e1aたくさんありますが、GitHubは最適な場所ではありません。閉鎖されます。 最初にガイドをご覧ください:https://firebase.google.com/docs/cli/公式ドキュメントが役に立たない場合は、公式サポートチャネル(https://firebase.google.com/)からお問い合わせください。 support /コミュニティからの解決策や支援を確認するための追加の場所:-Stack Overflow:https://stackoverflow.com/ --Firebase Slack Community:https://firebase.community/ *複数のチャネルにまたがる重複投稿は避けてください!*
firebase-tools:
firebase --version
7.2.2
プラットホーム:
MacOS(10.14.6(18G87))とWindows10開発環境の両方。
MCVE:Firebase関数テンプレート+ firebase.json
の 'functions.ignore'セクション
Firebaseプロジェクトを作成します。
デフォルトのオプションを使用してfirebaseinit関数を実行し、それを新しいプロジェクトに追加します。
firebase init functions
index.js
のhelloWorldサンプル関数のコメントを解除してデプロイします。
⋊> ~/D/f/functions firebase deploy 11:02:38
=== Deploying to 'test-function-deploy-3a957'...
i deploying functions
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (22.95 KB) for uploading
✔ functions: functions folder uploaded successfully
i functions: updating Node.js 8 function helloWorld(us-central1)...
✔ functions[helloWorld(us-central1)]: Successful update operation.
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/test-function-deploy-3a957/overview
⋊> ~/D/f/functions
デプロイされたパッケージ化された関数のサイズ(22.95KB)に注意してください。
firebase.json
を編集して、「functions.ignore」セクションを含めます。
{
"functions": {
"ignore": []
}
}
再デプロイ:
⋊> ~/D/f/functions firebase deploy 11:03:24
=== Deploying to 'test-function-deploy-3a957'...
i deploying functions
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (9.07 MB) for uploading
✔ functions: functions folder uploaded successfully
i functions: updating Node.js 8 function helloWorld(us-central1)...
✔ functions[helloWorld(us-central1)]: Successful update operation.
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/test-function-deploy-3a957/overview
⋊> ~/D/f/functions
デプロイされたパッケージが22.95KBから9.07MBに増加したことに注意してください。
無視すると、デプロイされたパッケージが大きくなるのではなく小さくなると思います。
デプロイされたパッケージのサイズは、22.95KBから9.07MBに数桁増加します。
参考までに、この場合、ローカルnode_modules
を含むfunctions
フォルダーのサイズは29MBです。 node_modules
フォルダー自体はディスク上で28.9MBで、gzipで圧縮されたサイズは約6MBです。
これはTypeScriptプロジェクトにも影響します。おそらく、問題はtsc
の部分の後でトリガーされるためです。
firebase.json
構成ファイル、特にfunctions
セクションの適切で決定的なドキュメントはまだ見つかりません。 hosting
セクションのドキュメントがここにあります。 functions.ignore
の構造/使用法についての私の理解は、現在https://github.com/firebase/firebase-tools/issues/291#issuecomment-322526710に基づいています。
関連する問題#429があり、 @ laurenzlongは、 ignore
セクションを操作可能/修正する必要があることを示しています。
デプロイする前に、デプロイされたパッケージはローカルにビルドされますか? --debugを使用して実行しましたが、有用なファイルパスを見つけることができませんでした。
検討していただきありがとうございます! そして、私の電話テザリングデータプランはこれを解決してくれてありがとう。私の現在のプロジェクトの展開は何が起こっているのか理解する前に約55MBです:)
あなたが説明した振る舞いは、私が期待する振る舞いです。
ご指摘のとおり、ドキュメントにはfunctions.ignore
については説明されていません。 ただし、 CLIによって使用されます。
非公式に(_undocumented_であるという点で)、 firebase.ignore
のデフォルトは["node_modules"]
です。 これにより、デプロイ中にアップロードする必要のあるものの量を制限できます(これは、非常に大きくなり、非常に速くなる可能性があります)。 package.json
にfirebase.ignore
を設定することにより、CLIに_nothing_を無視するように指示します。 これで、 node_modules
フォルダーがアーカイブに含まれ、Functionsに送信されます。
あなたの質問に答えるために:プロセスの高レベルの説明では、CLIはローカルでパッケージをビルドしません。 それは大まかに次のことを行います:
firebase.json
でも指定されます)。node_modules
を無視します)、Functionsにアップロードします。ソースコードがアップロードされると、Functionsインフラストラクチャは$ package.json
npm install
を実行し、ソースはユーザーにサービスを提供する準備が整います(少なくとも、この非常に手に負えない説明では)。
それがあなたの質問に答えることを願っています。 ただし、ここにはCLI関連のバグがないため、この問題を解決します。
情報@bkendallをありがとう。
#291に基づいて、CLIは常にnode_modulesを除外し、 functions.ignore
の内容は追加的であると誤って考えました。 node_modulesに明示的なパターンを追加すると、説明したとおりになります。
@bkendallなぜそれを文書化しないのですか?
最も参考になるコメント
あなたが説明した振る舞いは、私が期待する振る舞いです。
ご指摘のとおり、ドキュメントには
functions.ignore
については説明されていません。 ただし、 CLIによって使用されます。非公式に(_undocumented_であるという点で)、
firebase.ignore
のデフォルトは["node_modules"]
です。 これにより、デプロイ中にアップロードする必要のあるものの量を制限できます(これは、非常に大きくなり、非常に速くなる可能性があります)。package.json
にfirebase.ignore
を設定することにより、CLIに_nothing_を無視するように指示します。 これで、node_modules
フォルダーがアーカイブに含まれ、Functionsに送信されます。あなたの質問に答えるために:プロセスの高レベルの説明では、CLIはローカルでパッケージをビルドしません。 それは大まかに次のことを行います:
firebase.json
でも指定されます)。node_modules
を無視します)、Functionsにアップロードします。ソースコードがアップロードされると、Functionsインフラストラクチャは$
package.json
npm install
を実行し、ソースはユーザーにサービスを提供する準備が整います(少なくとも、この非常に手に負えない説明では)。それがあなたの質問に答えることを願っています。 ただし、ここにはCLI関連のバグがないため、この問題を解決します。