環境
❯ npm -version 10.0.0 ❯ node -v v20.6.0 ❯ cat /etc/debian_version 12.1
結論
npm login --auth-type legacy
を実行してください。
解説
なぜCLIでログインする必要があるのか
WSL2ではいい感じにパスを通したりしない限り、CLIからGUIのブラウザを開くことが出来ません。
そのため、WSL2でnpmにログインをしようとnpm login
を行うと...
❯ npm login --registry=https://registry.npmjs.org/ npm notice Log in on https://registry.npmjs.org/ Login at: https://www.npmjs.com/login?next=/login/cli/c021847a-5631-4bcc-b912-207ed62d8fa5 Press ENTER to open in the browser...
と、"Press ENTER to open in the browser..."で詰んでしまいます。もちろんEnterキーを押したところで、エラーが出ます。
npmの認証方式
npmのログイン時の認証方式はデフォルトでWebブラウザを利用するようになっています。
なので明示的にlegacy
オプションで、古い形式でのログインを指定してあげることでCLIからのログインが可能になります。