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

Angular 15升级后搭配Node.js 18出现代理请求超时问题求助

问题解决:Angular 15 + Node.js 18 代理请求超时(ETIMEDOUT)

核心原因

Node.js 18 调整了默认的网络/TLS 配置,同时 Angular 15 配套的 webpack-dev-server(HPM 代理)在 Node.js 18 环境下的默认行为与 Node.js 16 存在差异,导致原代理配置无法正常建立连接。

解决方案

1. 调整代理配置,增加超时与TLS兼容参数

修改你的src/proxy.conf.json,补充以下配置:

{
  "/api": {
    "target": "[backend_server]",
    "secure": true,
    "changeOrigin": true,
    "timeout": 60000,
    "tls": {
      "minVersion": "TLSv1.2"
    }
  }
}
  • timeout:延长代理请求的超时时间,避免因 Node.js 18 默认超时阈值更短导致连接中断
  • tls.minVersion:强制使用 TLS 1.2 协议,适配部分后端服务的 TLS 版本要求(Node.js 18 默认启用了更高版本的 TLS,部分旧后端服务不兼容)

2. 适配自签名证书场景(仅开发环境)

如果后端使用自签名证书,Node.js 18 对证书验证更严格,可临时添加以下配置(生产环境禁止使用):

{
  "/api": {
    "target": "[backend_server]",
    "secure": false,
    "changeOrigin": true,
    "timeout": 60000,
    "rejectUnauthorized": false
  }
}

3. 升级Angular开发工具依赖

将@angular-devkit/build-angular升级到 Angular 15.x 的最新小版本,该版本修复了与 Node.js 18 的兼容性问题:

npm install @angular-devkit/build-angular@^15.2.0 --save-dev

4. 验证基础网络连通性

先确认开发机器能直接访问后端服务,排除网络本身的问题:

curl [backend_server]/api/physicians/

如果直接访问也超时,需要排查防火墙、VPN 或后端服务状态。

为什么回退Node.js 16能解决?

Node.js 16 的默认 TLS 版本、超时配置和代理相关网络行为与 Node.js 18 不同,原代理配置刚好适配 Node.js 16 的环境,而 Node.js 18 的新默认规则打破了这种兼容性。

内容的提问来源于stack exchange,提问作者Carla C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:35:49