Windows で npm run dev したときに listen EADDRINUSE エラーが出た場合の対処法メモ

Windows 環境で Node.js などを使用して開発している際、ローカルサーバを立ち上げようとしたら Error: listen EADDRINUSE が表示される場合の対処法についてのメモ。

単なる備忘録です。

Node.js 環境で開発しているとき、npm run dev とかして、ローカルの開発サーバを立ち上げようとしたら、

Error: listen EADDRINUSE: address already in use :::3000
{
  code: 'EADDRINUSE',
  errno: -4091,
  syscall: 'listen',
  address: '::',
  port: 3000
}

みたいなエラーが帰ってくるやつ、複数のプロジェクトを同時に開発していたりすると、たまに遭遇するんですが、簡単にいえば、特定のポート (上のエラーの例でいえば、ポート 3000 ですね) をすでに他のプロセスが使ってるからダメですよ、というエラー。

私、メインの開発環境は Windows ですので、Windows 環境での対処方法についてメモしておきます。もしかすると同じようなことに遭遇する人もいるかもしれないので。

で、手順は簡単なんですが、ポート 3000 でエラーが出た場合であれば、まず netstat コマンドでそのポートを使っているプロセスの ID を調べます。

netstat -aon | findstr :3000

netstat コマンドに指定しているオプションは下記の通り。

  • -a オプション: リッスンしているポートもすべて表示
  • -n オプション: IP アドレスやポート番号を全て数値で表示
  • -o オプション: プロセスの ID (PID)を表示

そうすると、下記のように結果が帰ってきますので、一番最後に表示されているプロセス ID (PID) を使用してプロセスを強制終了します。

プロトコル    ローカル アドレス   外部アドレス    状態         PID
TCP          0.0.0.0:3000     0.0.0.0:0      LISTENING   35024

これには、taskkill コマンドを使用します。

taskkill /F /PID 35024

指定するオプションは下記の通り。

  • /F で、強制終了するプロセスを指定
  • /PID を続けて、終了するプロセスのプロセス ID (PID) を指定

下記のように強制終了しましたよ、というメッセージが表示されれば完了。

成功: PID 35024 のプロセスは強制終了されました。

改めて npm run dev して、ローカルサーバが立ち上がれば OK です。

関連エントリー

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?