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

Next.js开发启动报错:read ECONNRESET与TypeError: fetch failed求助

解决Next.js开发服务器启动时的TypeError: fetch failed (ECONNRESET)错误

问题场景

运行npm run dev启动Next.js 14.2.3或14.3.2开发服务器时,触发以下错误:

TypeError: fetch failed
at node:internal/deps/undici/undici:12502:13
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async getVersionInfo (/home/shs/tmp/uniswap/node_modules/next/dist/server/dev/hot-reloader-webpack.js:215:21)
at async Span.traceAsyncFn (/home/shs/tmp/uniswap/node_modules/next/dist/trace/trace.js:154:20)
at async HotReloaderWebpack.start (/home/shs/tmp/uniswap/node_modules/next/dist/server/dev/hot-reloader-webpack.js:607:28)
at async startWatcher (/home/shs/tmp/uniswap/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:156:5)
at async setupDevBundler (/home/shs/tmp/uniswap/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:775:20)
at async Span.traceAsyncFn (/home/shs/tmp/uniswap/node_modules/next/dist/trace/trace.js:154:20)
at async initialize (/home/shs/tmp/uniswap/node_modules/next/dist/server/lib/router-server.js:78:30)
at async Server.<anonymous> (/home/shs/tmp/uniswap/node_modules/next/dist/server/lib/start-server.js:249:36) {
[cause]: Error: read ECONNRESET
at TLSWrap.onStreamRead (node:internal/stream_base_commons:218:20) {
errno: -104,
code: 'ECONNRESET',
syscall: 'read'
}
}

项目package.json配置如下:

{
  "name": "uniswap",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@radix-ui/react-dialog": "^1.0.5",
    "@radix-ui/react-icons": "^1.3.0",
    "@radix-ui/react-label": "^2.0.2",
    "@radix-ui/react-navigation-menu": "^1.1.4",
    "@radix-ui/react-select": "^2.0.0",
    "@radix-ui/react-slot": "^1.0.2",
    "@reduxjs/toolkit": "^2.2.5",
    "class-variance-authority": "^0.7.0",
    "clsx": "^2.1.1",
    "next": "14.2.3",
    "react": "^18",
    "react-dom": "^18",
    "react-redux": "^9.1.2",
    "tailwind-merge": "^2.3.0",
    "tailwindcss-animate": "^1.0.7"
  },
  "devDependencies": {
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "eslint": "^8",
    "eslint-config-next": "14.2.3",
    "postcss": "^8",
    "tailwindcss": "^3.4.1",
    "typescript": "^5"
  }
}

使用Node.js版本为lts/iron (20.13.1),且已确认错误与已安装包无关。

错误原因分析

该错误触发于Next.js热重载模块执行getVersionInfo时的fetch请求,连接被重置(ECONNRESET)。核心诱因包括:

  • Next.js的版本检查请求被本地防火墙、VPN或代理工具拦截
  • Node.js 20.13.1与Next.js底层依赖undici存在兼容性问题
  • 本地网络环境限制了对外HTTP请求

解决方法

1. 禁用Next.js版本检查

直接关闭Next.js启动时的版本更新检查,避免触发失败的fetch请求:
修改package.json中的dev脚本:

"scripts": {
  "dev": "NEXT_DISABLE_VERSION_CHECK=1 next dev",
  "build": "next build",
  "start": "next start",
  "lint": "next lint"
}

也可以临时在终端执行:

NEXT_DISABLE_VERSION_CHECK=1 npm run dev

2. 调整Node.js版本

尝试升级Node.js到20.x最新稳定版,或降级到18.x LTS版本,解决可能的依赖兼容性问题。

3. 检查网络限制

临时关闭本地防火墙、VPN或代理工具,确认是否是网络拦截导致请求失败。

4. 清除缓存文件

清除Next.js缓存和依赖缓存,避免缓存损坏引发异常:

rm -rf .next node_modules/.cache
npm install
npm run dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:34:56