☠️
Cloud FunctionsがDeployできない?
コマンドが実行できない!
Cloud Functionsの関数をFirebaseに、Deployしようとしたのですが、以下のエラーにハマりました😇
解決方法
Githubのissueを見てみる。
TypeScriptを使用したときに、発生するエラーのようですね。
package.jsonの内容を変更しましょう。
変更前
変更後
他には、npmのVersionが原因のこともあるらしいので、Versionのエラーが発生したときは、package.jsonがあるfunctionsディレクトリ内で、npm installを実行します。
npm install
ソースコード
package.json
{
"name": "functions",
"scripts": {
"lint": "eslint --ext .js,.ts .",
"build": "tsc",
"build:watch": "tsc --watch",
"serve": "npm run build && firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "npm run build && firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "^10.0.2",
"firebase-functions": "^3.18.0"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.12.0",
"@typescript-eslint/parser": "^5.12.0",
"eslint": "^8.9.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-import": "^2.25.4",
"firebase-functions-test": "^0.2.0",
"typescript": "^4.5.4"
},
"private": true
}
Firebaseを見てみると、関数のDeployに成功しているようですね。
まとめ
Cloud Functionsは、あまり情報がないので、難しいですね。
TypeScriptで書くともっと難しくなるし、ESLintの設定入れると結構エラーにハマります。
- ハマった内容
- TypeScriptを使用する.
- ESLintを導入する.
- .vscodeの設定が必要.
Discussion