yarn install のエラーと解決方法（Mac）

# 目次
- [1.はじめに](#はじめに)
- [2.yarn installでエラー発生](#warning-yarn-installでエラー発生)
    - [2-1.エラー内容](#エラー内容)
    - [2-2.解決方法](#解決方法)
- [3.再び yarn install でエラー発生](#warning-再び-yarn-install-でエラー発生)
    - [3-1.エラー内容](#エラー内容-1)
    - [3-2.解決方法](#解決方法-1)
[5.参考サイト](#参考サイト)


# はじめに
環境構築の際にyarn installでエラーが発生したので、エラーの内容と解決方法をまとめました。

発生したエラーは以下の3つです。

```
https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz: Request failed "503 Service Unavailable"
```

```
error react-router-dom@7.5.3: The engine "node" is incompatible with this module. Expected version ">=20.0.0". Got "18.13.0"
```

```
Error: ENOENT: no such file or directory, open '...@esbuild/linux-ia32/.../.yarn-metadata.json'
```

---

エラーが発生した経緯と詳細について説明します。

# :warning: yarn installでエラー発生

各種バージョン
node：v18.13.0
yarn：1.22.22
npm：10.9.2
git：2.39.5 (Apple Git-154)

git cloneし、REAME.mdに従ってyarn installを実行しました。

```
hoge % yarn install

yarn install v1.22.22
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
info There appears to be trouble with your network connection. Retrying...
error https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz: Request failed "503 Service Unavailable"
error react-router-dom@7.5.3: The engine "node" is incompatible with this module.
 Expected version ">=20.0.0". Got "18.13.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```

## エラー内容
### 1. ネットワークエラー（503 Service Unavailable）
```
error https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz: Request failed "503 Service Unavailable"
```
**原因**
yarn が外部のパッケージ（この場合 esbuild の Linux ia32 バイナリ）を取得しようとしたが、Yarn パッケージレジストリのサーバーが一時的に応答不能（503）だった。
（ChatGPTより）

**対応**
- しばらく時間を置いて再試行する。（一時的な障害の可能性あり）
- 社内ネットワーク制限や プロキシ が原因でブロックされている場合もあるので、ネットワーク設定を確認する。
- オフラインキャッシュが有効なら「yarn install --offline」を試す。
（ChatGPTより）

### 2. Node.js のバージョンが古い
```
react-router-dom@7.5.3: The engine "node" is incompatible with this module. Expected version ">=20.0.0". Got "18.13.0"
```

**原因**
- react-router-dom@7.5.3 は **Node.js 20 以上を要求** しているが、現在の環境は Node.js 18.13.0である。
- このバージョンでは対応していないためインストール不可。

**対応**
**Node.js のバージョンを上げる。**
保守性や機能不足の問題が出るので依存バージョンを下げることは推奨しません。

上記を踏まえ、エラーを解決していきます。

# 解決方法

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

![スクリーンショット 2025-06-18 16.54.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1104075/5af11cb1-96bf-4e9d-89aa-dc07f252f777.png)

1.使いたいバージョンをインストール
[Node.jsのサイト](https://nodejs.org/ja)に「長期サポート版Node.js v22.16.0をダウンロードする。」とあったので、v22.16.0を選択しました。（2025年6月18日時点）
```
hoge % nodebrew install-binary v22.16.0
Fetching: https://nodejs.org/dist/v20.14.0/node-v20.14.0-darwin-arm64.tar.gz
Installed successfully
```

2.インストールしたバージョンのリストから使いたいものを選ぶ
```
hoge % nodebrew ls
v18.13.0
v22.16.0

hoge % nodebrew use v22.16.0
```

3.バージョン確認

```
hoge % node -v
v22.16.0
```

# :warning: 再び yarn install でエラー発生
Node.jsのバージョンを上げたが、再びエラーになりました。

```
hoge % yarn install

yarn install v1.22.22
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz: Request failed "503 Service Unavailable"
[3/4] 🔗  Linking dependencies...
warning " > bootstrap@5.3.6" has unmet peer dependency "@popperjs/core@^2.11.8".
warning " > eslint-config-react-app@7.0.1" has incorrect peer dependency "eslint@^8.0.0".
warning "eslint-config-react-app > @typescript-eslint/eslint-plugin@5.62.0" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0 || ^8.0.0".
warning "eslint-config-react-app > @typescript-eslint/parser@5.62.0" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0 || ^8.0.0".
warning "eslint-config-react-app > eslint-plugin-flowtype@8.0.3" has unmet peer dependency "@babel/plugin-syntax-flow@^7.14.5".
warning "eslint-config-react-app > eslint-plugin-flowtype@8.0.3" has unmet peer dependency "@babel/plugin-transform-react-jsx@^7.14.9".
warning "eslint-config-react-app > eslint-plugin-flowtype@8.0.3" has incorrect peer dependency "eslint@^8.1.0".
warning "eslint-config-react-app > eslint-plugin-jest@25.7.0" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0 || ^8.0.0".
warning "eslint-config-react-app > eslint-plugin-react-hooks@4.6.2" has incorrect peer dependency "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0".
warning "eslint-config-react-app > eslint-plugin-testing-library@5.11.1" has incorrect peer dependency "eslint@^7.5.0 || ^8.0.0".
warning "eslint-config-react-app > @typescript-eslint/eslint-plugin > @typescript-eslint/utils@5.62.0" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0 || ^8.0.0".
warning "eslint-config-react-app > eslint-plugin-jest > @typescript-eslint/experimental-utils@5.62.0" has incorrect peer dependency "eslint@^6.0.0 || ^7.0.0 || ^8.0.0".
error Error: ENOENT: no such file or directory, open '/Users/hoge/Library/Caches/Yarn/v6/npm-@esbuild-linux-ia32-0.25.3-81025732d85b68ee510161b94acdf7e3007ea177-integrity/node_modules/@esbuild/linux-ia32/.yarn-metadata.json'
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```

## エラー内容
```
error https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz: Request failed "503 Service Unavailable"
...
error Error: ENOENT: no such file or directory, open '...@esbuild/linux-ia32/.../.yarn-metadata.json'
```

**原因**
1. esbuild の linux-ia32 バイナリを取得しようとしているが、あなたの環境（Mac/arm64）に不適合なパッケージを取得しようとしている。

2. Yarn のキャッシュディレクトリにファイルが存在しないことが原因で、ENOENT（ファイルが存在しない）エラーが出ている。

3. 503 Service Unavailable は、yarn レジストリサーバーが一時的に落ちているか、ネットワーク問題でアクセスできなかったことを意味します。
（ChatGPTより）

# 解決方法
## キャッシュクリア ＆ 再試行
ChatGPTより
>esbuild のようなネイティブバイナリを含むパッケージは、プラットフォーム（macOS、Linux）により依存関係が異なるので、一度キャッシュをクリアすることで正しいバージョンが取得される可能性があります。

とのことで、以下のコマンドでキャッシュクリアを実行。
それから **yarn.lockとnode_modulesを削除。**

```
hoge % yarn cache clean
yarn cache v1.22.22

success Cleared cache.
✨  Done in 14.91s.
```

再度インストールを実行し、成功しました。
```
hoge % yarn install
yarn install v1.22.22

[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
・・・
[4/4] 🔨  Building fresh packages...
[1/2] ⠄ canvas
・・・

success Saved lockfile.
✨  Done in 184.89s.
```


# 参考サイト
https://yarnpkg.com/cli/cache/clean