📑

Github Actions で Expected version >=18.17.0. Got 16.20.2 とか言われたときの対処法

2024/03/01に公開

内容

Azure とか Firebase とかで Github のレポジトリから deploy するときに、Github Actions で下記のような node のバージョン関連のエラーが出た時の対処法です。

  • The engine "node" is incompatible with this module. Expected version ">=18.17.0". Got "16.20.2"
  • Node version 20.11.1 is not supported. Please use one of the following versions 12, 14, 16, 18.

原因

Github Actions で使う node のバージョンが適切でないことが原因です。

対策

まず package.json に下記を追加します。

package.json
  "engines": {
    "node": "^18.x"
  },

次に .github 以下にある Workflow ファイル (ymlファイル) の中で直接 node のバージョンを指定します。具体的には Workflow ファイルの下記の位置(階層)に node-version: v18 とか書きます。ちなみに v18.0.0 などと細かくバージョン書いても、18 の最新バージョンが強制的に使われるようです。

Workflow ファイル名はデプロイ先によって違ってたりします。

jobs:
  build_and_deploy_job:
    steps:
      with:
        node-version: v18

ちなみに、2024年の春ころからは Githuc Actions で使用される node のバージョンは v20 がデフォルトになるらしいです(下記参照)

Discussion