🕊️
nodeのバージョンが異なる時のエラー解消
はじめに
下記のコマンドを打ったらエラーが出たので、解消しました。
$ eas build --profile develop --platform ios --local
前提
私のPJでは、nodeのバージョンを現在の最新安定版22に固定するために、それ以外のバージョンをだったらエラーを吐くようにしています。
下記はそのエラーの設定方法です。
.github/workflows/api-pr.ymlでciのnodeバージョンをpackageから取得します。
api-pr.yml
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: 'package.json'
デバッグに以下を追記し
api-pr.yml
- name: Check Node Version
run: node -v
actでpackage.jsonと同じv22になったのを確認
⭐ Run Main Check Node Version
[api database PR Push check/Lint ] 🐳 docker exec cmd=[bash -e /var/run/act/workflow/2] user= workdir=
| v22.11.0
[api database PR Push check/Lint ] ✅ Success - Main Check Node Version
[api database PR Push check/Lint ] ⭐ Run Post Use Node.js
.npmrcで、package.jsonで指定したnodeのバージョンを使うよう強制
逆にローカルで違うバージョンだと、今まではwarningだったがエラーになります。
engine-strict=true
package.jsonにバージョン指定します。
package.json
"engines": {
"node": "22.x"
},
上記の設定を行なっているために、下記のエラーが発生しています。
エラー
nodeのバージョンが22になって欲しいのに、現在はv18.17.1になっているよ!というエラーです。
[INSTALL_DEPENDENCIES] npm
[INSTALL_DEPENDENCIES] ERR! code EBADENGINE
[INSTALL_DEPENDENCIES] npm ERR!
[INSTALL_DEPENDENCIES] engine Unsupported engine
[INSTALL_DEPENDENCIES] npm ERR! engine Not compatible with your version of node/npm: undefined
[INSTALL_DEPENDENCIES] npm
[INSTALL_DEPENDENCIES] ERR! notsup Not compatible with your version of node/npm: undefined
[INSTALL_DEPENDENCIES] npm ERR! notsup Required: {"node":"22.x"}
[INSTALL_DEPENDENCIES] npm ERR! notsup Actual: {"npm":"10.2.3","node":"v18.17.1"}
[INSTALL_DEPENDENCIES]
[INSTALL_DEPENDENCIES] npm ERR! A complete log of this run can be found in: /Users/mii/.npm/_logs/2024-12-08T12_18_40_420Z-debug-0.log
[INSTALL_DEPENDENCIES]
Error: npm install exited with non-zero code: 1
at ChildProcess.completionListener
でも、node -vで確認したらバージョンは22でした。
解消方法
nodeのバージョンではなく、eas -vでバージョンを確認
eas -v
★ eas-cli@14.0.2 is now available.
To upgrade, run npm install -g eas-cli.
Proceeding with outdated version.
eas-cli/13.4.2 darwin-arm64 node-v18.17.1
node-v18.17.1と書いてありました!怪しい、、、!
easが置いてある場所を調べたら、volta配下にありました!なぜ、、、
which eas
/Users/mii/.volta/bin/eas
volta配下のeas-cliをアンストしました。
volta uninstall eas-cli
Removed executable 'eas' installed by 'eas-cli'
success: package 'eas-cli' uninstalled
もう一度探したら、nvm配下になっていました!
which eas
/Users/mii/.nvm/versions/node/v22.11.0/bin/eas
これで、バージョンを確認したら、node-v22.11.0になっていました!
eas -v
eas-cli/14.0.2 darwin-arm64 node-v22.11.0
これでエラーが解消しました🎉
Discussion