Windows/WSL1 + Ubuntu + VS Code という組み合わせでやってるんですが、しばしば npm install
が失敗します。
npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path /mnt/c/Users/ginpei/xxx/node_modules/@typescript-eslint/typescript-estree/node_modules/semver
npm ERR! dest /mnt/c/Users/ginpei/xxx/node_modules/@typescript-eslint/typescript-estree/node_modules/.semver.DELETE
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, rename '/mnt/c/Users/ginpei/xxx/node_modules/@typescript-eslint/typescript-estree/node_modules/semver' -> '/mnt/c/Users/ginpei/xxx/node_modules/@typescript-eslint/typescript-estree/node_modules/.semver.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/ginpei/.npm/_logs/2020-09-30T18_57_36_471Z-debug.log
なんか一時ファイルっぽいし謎ですね。
原因はよくわかってないんですが、どこか(どこだっけ)で「VS Code のファイル監視が悪さをしている」ような話を聞いたことがあって、実際 VS Code を閉じた状態でこういうエラーに出くわしたことはないです。
というわけで VS Code を閉じてみてください。
- VS Code を閉じる
- VS Code 以外のターミナルから
npm install
- 完了したら、VS Code を開く
Error persisting state: EACCES: permission denied, rename
他のパターンも置いておきます。これは npm install
じゃなくて Gatsby のビルドで出てきたやつ。
warning Error persisting state: EACCES: permission denied, rename '/mnt/c/Users/ginpei/xxx/.cache/redux' -> '/mnt/c/Users/ginpei/xxx/.cache/redux.bak'
対処は同じく VS Code を閉じてください。
[Windows] VS Code を閉じた状態でターミナルを利用する
VS Code 内のターミナルで実行しているのに VS Code を閉じるとそのまま npm install
も終了してしまうので、他のターミナルが必要です。
cmd.exe
… Windows 標準の黒い画面。wsl
コマンドとかで WSL を開く- Windows Terminal … Microsoft 謹製のターミナルアプリ。複数タブ等、諸々便利でおすすめ
tmux
… Linux 内で動くターミナル多重化アプリ。一言で言うと「閉じても終了しないセッションを作る」ことができる
tmux
が一番便利だけど CLI に慣れてないとつらいと思うので、一般には Windows Terminal をお勧めしておきます。いずれにしろ入れておいて損はないです。
おしまい
「VS Code のファイル監視が~」の件、ちゃんとした情報源があれば教えてください。