WebStorm报Address already in use的解决方法是:①用netstat/tasklist(Win)或lsof(Mac/Linux)查占用端口的PID;②taskkill/kill指定PID,避免误杀IDE进程;③修改项目配置(如vite.config.ts、vue.config.js或Run Configuration参数)更换端口。

WebStorm 报 Address already in use,不是 IDE 坏了,而是端口被别的进程占着——90% 情况下,是你自己上一个没关干净的 node 进程,或者另一个 WebStorm 实例、VS Code 的 dev server、甚至残留的 redis-server 在后台跑着。
查哪个 PID 正在用 3000/8080/5173 这类端口
别猜,直接定位:
• Windows:打开 CMD(不用管理员权限也能查,但杀进程时可能需要),执行 netstat -aon | findstr :3000(把 3000 换成你报错的实际端口),输出最后一列就是 PID;再执行 tasklist | findstr 12345(12345 是上一步看到的 PID),确认进程名是不是 node.exe、java.exe 或 chrome.exe
• macOS/Linux:终端里运行 lsof -i :5173,第二列就是 PID;如果提示 command not found,先装:brew install lsof(macOS)或 sudo apt install psmisc(Ubuntu)
• 注意:netstat 不显示进程名,lsof 会直接显示 COMMAND 列,更省一步
杀进程时千万别 kill webstorm.exe 或 jetbrains_client
确认 PID 对应的是 node 或 java 后再动手:
• Windows:taskkill /f /pid 12345(加 /f 强制终止);如果担心误杀,先看 WebStorm 底部状态栏有没有正在运行的 npm start,点红色方块停掉它再试
• macOS/Linux:kill 12345(发 SIGTERM,让进程自己清理);只有不响应时才用 kill -9 12345
• 绝对不要执行 taskkill /f /im webstorm.exe——这会整个关掉 IDE,而你只是想干掉后台那个没退出的 node 进程
改端口比反复 kill 更可靠(尤其 Vue/Vite/Express 项目)
硬杀治标,改配置治本。不同项目改法不一样:
• Vite 项目:在 vite.config.ts 里加 server: { port: 5174 }
• Vue CLI 项目:改 vue.config.js 的 devServer.port,或加 .env 文件写 VUE_APP_PORT=8081
• Express/Node.js 脚本:启动命令里传参,比如 node server.js --port=3001;WebStorm Run Configuration 中,在 Application parameters 栏填 --port=3001
• 注意:PORT=3001 这种环境变量方式,在 WebStorm 的 Environment variables 里设也行,但老版本 vue-cli 可能忽略它,必须改配置文件才生效
JavaScript Debug 配置根本不管服务端口
很多人卡在这儿:新建了 JavaScript Debug 配置,把 URL 改成 http://localhost:8080,结果点运行还是打不开——因为这个配置不启动任何服务,它只是告诉浏览器去连一个“已经存在的地址”。
• 真正提供 http://localhost:63342 的是 WebStorm 内置静态服务器,端口由 Settings → Advanced Settings → Built-in Server Port 控制,改完必须重启 IDE
• 如果你跑的是 Vite 或 Vue CLI,就别用 JavaScript Debug 配置,改用 npm 类型,Scripts 选 dev,并勾选 Run npm script in new terminal
• 浏览器手动访问 http://localhost:5173,别点 WebStorm 自带的 “Open in Browser” 按钮——它默认开的是内置服务地址
最常被忽略的一点:WebStorm 的运行配置是按项目、按脚本单独生效的,改错类型(比如在 JavaScript Debug 里调 PORT 环境变量)或漏掉 Run in new terminal,都会让端口设置完全不生效。


















