❄️

EASビルドでエラーが出たので解消しました。

2024/12/06に公開

はじめに

EASビルドを行ったらエラーが出たので解消しました。

EASビルドコマンドを実行

$ eas build --profile develop --platform android

https://docs.expo.dev/develop/development-builds/create-a-build/#create-a-build-for-the-device

表示されたエラー

We detected that 'apps/mobile' is a npm workspace
Running "npm install" in /home/expo/workingdir/build directory
npm
ERR! code EBADENGINE
npm ERR!
engine Unsupported engine
npm ERR! engine Not compatible with your version of node/npm: undefined
npm ERR! notsup Not compatible with your version of node/npm: undefined
npm ERR! notsup Required: {"node":"22.x"}
npm ERR! notsup Actual:   {"npm":"9.8.1","node":"v18.18.0"}
npm ERR! A complete log of this run can be found in: /home/expo/.npm/_logs/2024-12-05T08_05_37_176Z-debug-0.log
npm install exited with non-zero code: 1

"node":"22.x"にする必要があると書いてあります。

原因

原因は、eas.jsonにnodeのバージョンを記述していないことでした。
下記のExampleを参考に記述しています。
https://docs.expo.dev/eas/json/#example-schema-of-multiple-build-profiles

{
  "cli": {
    "version": ">= 13.4.2",
    "appVersionSource": "remote"
  },
  "build": {
    "base": {
      "node": "22.11.0",//ここを追加
    },
    "develop": {
      "extends": "base",//継承するためにここも追加
      "developmentClient": true,
      "distribution": "internal"
    },
    "staging": {
      "distribution": "internal"
    },
    "production": {
      "autoIncrement": true
    }
  },
  "submit": {
    "production": {}
  }
}

こちらでもう一度ビルドしたら解消しました。

Discussion