Playwright

npm グローバル管理から mise に移行したら npm キャッシュにハマった話

TL;DR — mise の npm バックエンドで @latest が存在しないバージョンに解決される場合、mise cache clear で mise の versions host キャッシュを消すと直る。

npm でグローバル管理していたツールを mise に移行しようとしたら、キャッシュ問題でちょっとハマったので記録しておく。

移行対象

$ npm list -g --depth=0
├── @playwright/cli@0.1.1   ← 新しいやつ(旧: playwright-cli)
├── @tobilu/qmd@2.1.0
├── @playwright/mcp@0.0.68
└── npm@11.11.0

今回 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/cli@0.262.0.

@latest を指定しているのに 0.262.0 という存在しないバージョンを引いてくる。なにそれ。