なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

PNPM で Unsupported environment (bad pnpm and/or Node.js version) と言われるのでなんとかしたい

最近 PNPM を使っているんですが、 node -vv18.12.1 とかを返しているにもかかわらず、 Node 14 には対応してないよ!って言われる。
それの解決方法。

基本的には、このコメントにあるとおりの作業をすれば治る。

NPM is (still?) not correctly identifying the node version #5266

が、 Windows 等の場合、何らかの理由で以下のようなエラーが発生するケースがある。

$ pnpm i -g pnpm
Nothing to stop. No server is running for the store at C:\Users\natsuneko\AppData\Local\pnpm\store\v3
Packages: +1
+
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: C:\Users\natsuneko\AppData\Local\pnpm\store\v3
  Virtual store is at:             .pnpm
 WARN  The target bin directory already contains an exe called pnpm, so removing C:\Users\natsuneko\AppData\Local\pnpm\pnpm.EXE
Progress: resolved 1, reused 0, downloaded 1, added 1, done
 EPERM  EPERM: operation not permitted, unlink 'C:\Users\natsuneko\AppData\Local\pnpm\pnpm.EXE'

この場合、上記ディレクトリにある pnpm.exe を削除した後、再度 PNPM をインストールすることで治る。

$ pnpm install -g pnpm
Nothing to stop. No server is running for the store at C:\Users\natsuneko\AppData\Local\pnpm\store\v3
Already up to date
Progress: resolved 1, reused 1, downloaded 0, added 0, done
Done in 737ms

あとは、 pnpm env use で、ワークスペースで使っている Node.js バージョンを指定すれば良い。
わたしは基本一括であげてるので -g フラグを付与している。

$ pnpm env use --global 18.12.1
Node.js 18.12.1 is activated
C:\Users\natsuneko\AppData\Local\pnpm\node.exe -> C:\Users\natsuneko\AppData\Local\pnpm\nodejs\18.12.1\node.exe

あとは、通常通りインストールコマンドを叩けば動くはず。

$ pnpm install
Lockfile is up to date, resolution step is skipped
Packages: +1063
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: M:\.pnpm-store\v3
  Virtual store is at:             node_modules/.pnpm
Downloading registry.npmjs.org/next/13.2.3: 10.4 MB/10.4 MB, done
Downloading registry.npmjs.org/@next/swc-win32-x64-msvc/13.2.3: 31.3 MB/31.3 MB, done
Progress: resolved 1063, reused 1038, downloaded 25, added 803, done
...


The integrity of 61938 files was checked. This might have caused installation to take longer.
Done in 3m 37.8s