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

Angular SSR应用运行时触发EADDRINUSE端口占用错误求助

Angular SSR开发环境EADDRINUSE端口占用问题(端口:::65336)

问题详情

  • Angular SSR应用首次启动正常,执行npm run dev:ssr代码编译成功,但修改代码触发热重载时,出现EADDRINUSE地址占用错误,涉及端口为:::65336
  • 已尝试升级至最新Node.js LTS版本(20.18.0)、Angular CLI最新版本(18.2.5),问题仍未解决
  • 当前环境版本:@angular/cli: 18.2.5,node: 20.18.0

临时解决方案

通过安装portfinder工具自动探测可用端口,修改server.ts中的启动逻辑实现端口重试:

  1. 安装依赖
npm install portfinder --save-dev
  1. 修改server.ts的run函数:
import portfinder from 'portfinder';

async function run(): Promise<void> {
  const app = await NestFactory.create(AppServerModule);
  const config = app.get(ConfigService);
  
  // 读取配置或设置默认端口
  const basePort = config.get('PORT') || 4000;
  // 自动寻找可用端口
  const targetPort = await portfinder.getPortPromise({
    port: basePort,
    stopPort: basePort + 100 // 限定端口搜索范围
  });

  try {
    await app.listen(targetPort);
    console.log(`Server running on http://localhost:${targetPort}`);
  } catch (err) {
    console.error('Server startup failed:', err);
    process.exit(1);
  }
}

run();

修改后,每次热重载时会自动检测并使用未被占用的端口,避免端口冲突导致的启动失败。

内容的提问来源于stack exchange,提问作者R.Almofleh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:58:09