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

Docker中NextJS项目执行npm run dev无法自动重载问题求助

NextJS Docker开发环境热重载失效+WebSocket连接失败解决方案
  • 配置NextJS HMR参数
    在项目根目录创建.env.local文件,添加NEXT_HMR_HOST=gamersplane.local;或者修改next.config.js,手动指定WebSocket地址:

    /** @type {import('next').NextConfig} */
    const nextConfig = {
      webpack: (config, { dev }) => {
        if (dev) {
          config.devServer.client.webSocketURL = 'ws://gamersplane.local/_next/webpack-hmr';
        }
        return config;
      },
    };
    
    module.exports = nextConfig;
    
  • 检查Docker端口映射
    确保容器的3000端口(NextJS默认开发端口)和宿主机3000端口绑定,WebSocket依赖这个端口传输热重载信号。比如docker-compose配置如下:

    services:
      app:
        build: ./
        ports:
          - "3000:3000"
        volumes:
          - .:/app
          - /app/node_modules
    
  • 修改dev命令绑定所有接口
    给package.json里的dev命令加上--hostname 0.0.0.0参数,让NextJS在容器内监听所有网络接口,避免HMR服务只绑定容器内部localhost导致浏览器无法连接:

    "scripts": {
      "dev": "next dev --hostname 0.0.0.0"
    }
    
  • 核对WebSocket地址
    确认浏览器控制台里的WebSocket地址ws://gamersplane.local/_next/webpack-hmr没有端口错误,如果Docker映射了非3000端口,要同步修改地址里的端口数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:54:56