You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Node、Concurrently和TypeScript运行双脚本遇端口占用错误

解决 EADDRINUSE 端口占用问题

先排查编译输出文件

直接查看 build/queue.js 的内容,确认是不是真的只有 console.log('testing'); 对应的编译代码。如果里面出现了 Express 监听 3000 端口的代码,说明 TypeScript 编译配置有问题,导致 index.ts 的代码被错误编译到了 queue.js 中。

检查 tsconfig.json 配置

重点核对以下配置项:

  • outDir:确保设置了正确的输出目录(比如 "outDir": "./build"),保证两个源文件编译后生成独立的目标文件,不会互相覆盖。
  • files/include:明确指定需要编译的文件,避免意外编译无关代码。例如:
    "include": ["src/index.ts", "src/queue.ts"],
    "outDir": "./build"
    
    确保 index.ts 和 queue.ts 分别编译为 build/index.js 和 build/queue.js,内容不混淆。

单独测试单个进程

脱离 concurrently 单独运行命令,定位问题来源:

  1. 先执行 yarn watch 完成编译,再运行 yarn serve:queue,看是否会报端口占用错误。如果报错,说明 queue.js 确实存在监听端口的代码,回到第一步排查编译问题。
  2. 单独运行 yarn serve:index,确认它能正常监听 3000 端口,且没有重复启动的情况。

限制 nodemon 监听范围

给 nodemon 添加 --watch 参数,让它只监听目标文件的变化,避免因其他文件更新误触发重启或执行错误脚本:

"serve:index": "nodemon --watch ./build/index.js ./build/index.js",
"serve:queue": "nodemon --watch ./build/queue.js ./build/queue.js"

清理旧编译文件

残留的旧编译文件可能引发异常,先删除整个 build 目录,重新编译后再启动服务:

rm -rf build && tsc && yarn dev

内容的提问来源于stack exchange,提问作者Miguel Stevens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:05:27