GithubActionsでERESOLVE... とエラーが出る場合の対応について
普段から当サイトのデザイン修正や、記事投稿はGithubを介して行っています。またその際に、Github Actions を用いてサイト内検索用の検索レコードを生成しているのですが、数日前からエラーで実行できていないことがわかりました。
ログを見ると、ERESOLVE… やら npm ERR! とエラーがぎっしり。今回はGithub Actions のエラーを解決する方法について説明します。
前提条件
まず私の環境や前提として以下の様な状態でエラーが出ています。
- ローカルで node ○○.mjs を実行した際は問題なくコードが走る
- 今まではGithub Actions で実行できていた
- Github Actions の上限時間などに達していない
なぜ実行できないのでしょうか? コードも見ていきましょう。
エラー内容
Github Actions で該当のスクリプト実行の様子を見てみます。

Run npm i
と実行した際にエラーが発生し、そのまま終了処理が行われています。
Run npm i の中身も見てみます。
Run npm i
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: astro@2.1.7
npm ERR! Found: sharp@0.32.0
npm ERR! node_modules/sharp
...
...
...
Error: Process completed with exit code 1.
npm i を実行した直後から npm ERR! code ERESOLVE とエラーが発生していますね。解決方法については以下にまとめています。
npm ERR! code ERESOLVE の解決方法
Github Actionsの実行指定ymlファイル内、run: npm i の後ろに —legacy-peer-deps を追記します。
- run: npm i --legacy-peer-deps
※ run npm install の場合も同様です。
- run: npm install --legacy-peer-deps
npm ERR! code ERESOLVE はなぜ起きるのか?
今まで問題なかったスクリプトに npm ERR! code ERESOLVE はなぜ起きるのでしょうか?調べてみたところ、個々のパッケージ同士のバージョン関係に不整合が生じている場合に発生するようです。
例えばAパッケージはBパッケージのバージョン2.3までしか対応していないのに、バージョン2.4がインストールされているみたいな状況ですね。
不用意にpackage.jsonをアップデートしてしまうと起きる可能性が高いです。もちろんpackage.jsonは定期的にアップデートすることが望ましいですが。
おわりに
Github Actions や npm 周りは私もまだまだ知らないことが多いので、勉強しないとなぁ〜と思いました。