未分類

Cloud FunctionsのNode.jsのバージョンを上げる方法

最近、Cloud Functionsの管理画面に不吉なアラートが出るようになりました。

「現在、Node.js16使ってるけど、2025/1/30で動かなくなるよ」という事だそうです。
ローカルのNode.jsのバージョン見るとv20.4.0って出るけど、どうやってCloud Functionsのバージョンを変えればいいのか…

と悩んでいるあなたにバージョンアップの方法を解説します。

 

現在のNode.jsバージョンの確認方法

ちなみに、現在のCloud Functions上のNode.jsのバージョンは
https://console.cloud.google.com/functions
で確認できます。

全員にNode.js 16は廃止するよってアラート出してるのかと思ったら、やっぱり僕に言ってた!

 

Node.jsのバージョンアップ方法

Cloud Functions上のNode.jsのバージョンは、ローカルのfunctionsファイルの設置フォルダ内の、functions/package.jsonに指定します。

ココ!!って書いている所。見事に16を指定していました。

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "16"  // ココ!!!!
  },
  "main": "index.js",
  "dependencies": {
    "firebase-admin": "^11.5.0",
    "firebase-functions": "^4.2.0"
  },
  "devDependencies": {
    "firebase-functions-test": "^3.0.0"
  },
  "private": true
}

 

公式資料によるNode.jsの各パージョンの期限はこんな感じ。

ver22にしておけば2028年末ぐらいまでは生き残れそうなので、22をしてみたところ、16にしろ!とエラーが出て混乱….。

Error: package.json in functions directory has an engines field which is unsupported. Valid choices are: {"node": 10|12|14|16}

18を指定してみたらできたので、ひとまずヨシとします。
無事18になりました。