npm グローバル管理から mise に移行したら npm キャッシュにハマった話
TL;DR — mise の npm バックエンドで
@latestが存在しないバージョンに解決される場合、mise cache clearで mise の versions host キャッシュを消すと直る。
npm でグローバル管理していたツールを mise に移行しようとしたら、キャッシュ問題でちょっとハマったので記録しておく。
移行対象
$ npm list -g --depth=0
├── @playwright/[email protected] ← 新しいやつ(旧: playwright-cli)
├── @tobilu/[email protected]
├── @playwright/[email protected]
└── [email protected]
今回 mise に移行したのは @playwright/cli と @tobilu/qmd の2つ。
@playwright/cli の移行でハマった
まず Deprecated なパッケージを入れてしまう
まず playwright-cli(旧・Deprecated)と @playwright/cli(新)を間違えて Deprecated の方を mise に入れてしまった。mise unuse で無効化してから改めてやり直し。
そしたら謎のエラーが出た。
$ mise use --global npm:@playwright/cli@latest
npm error code ETARGET
npm error notarget No matching version found for @playwright/[email protected].
@latest を指定しているのに 0.262.0 という存在しないバージョンを引いてくる。なにそれ。