🤖
MacのDocker環境でpnpmインストールするとENOENT: no such file or directoryエラーが出る
実際のエラー
ERR_PNPM_ENOENT ENOENT: no such file or directory, copyfile '/app/.pnpm-store/v3/files/ce/7ac406421b9dbe8d34036ac553a498e1efb9194b8cac509a6b56a0fd0db53728986014e245fba4635728a44f855690d0afbbf99e070939c1c783be46f8a54c' -> '/app/node_modules/.pnpm/next@14.2.2_react-dom@19.0.0-canary-fd0da3eef-20240404_react@19.0.0-canary-fd0da3eef-20240404_lmdnwc5u57ciqg2b6fb36mihcu/node_modules/next_tmp_1/dist/server/future/route-matcher-providers/route-matcher-provider.js.map'
今回は、Next.jsのデフォルト環境でのインストールだったが、別でもなるっぽい。
発生条件
仮装環境のファイルシステムに、virtiofs
を使用しているとなるっぽい。
(ファイルシステムを変更出来るなら回避できる。)
(Linux環境の仮想環境を使わないDockerなら大丈夫なはず。)
OrbStack
は、virtiofs
一択らしい。
Rancher Desctop
では他の選択肢があるが、速さ的には上記のファイルシステムを使いたいところ。
解決方法
storeを明示的に指定するとエラーが出なくなる。
pnpm config set store-dir /tmp/pnpm/store
参考
最後に
pnpmだと、Next.jsのビルド時にもエラーが出たので、まだ不安定っぽい。
モジュールロードの厳密さが良いので、使いたかったんだけどなぁと思った。
Discussion