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

DigitalOcean Ubuntu20.04环境MERN栈Next.js构建报JS堆内存溢出

可用解决方法如下:

  • 首先修正内存扩容配置不生效的问题:你使用普通用户执行export设置的NODE_OPTIONS环境变量不会被sudo继承,导致扩容配置完全没有生效。你可以直接修改package.json中的build脚本:
    "scripts": {
      "build": "NODE_OPTIONS=\"--max-old-space-size=4096\" next build"
    }
    
    再执行sudo npm run build即可。如果你的服务器实际内存不足4G,不要设置超过实际可用内存的数值,否则反而会触发异常。
  • 小内存Droplet开启swap虚拟内存:如果你的Droplet配置为1G/2G内存,可以临时开启2G swap分区支撑构建:
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
  • 升级Node.js版本:你当前使用的Node.js 12早已停止维护,新版Next.js对旧版Node的内存管理适配存在缺陷,建议升级到Node.js 16.x或18.x LTS版本,同时升级npm到对应版本,重新安装依赖后再尝试构建。
  • 降低Next.js构建并发数:如果近期新增了大量静态生成页面,可以在next.config.js中添加配置降低构建并发,减少内存占用:
    module.exports = {
      experimental: {
        cpus: 1,
        workerThreads: false
      }
    }
    
  • 临时释放服务器内存:构建前先停止当前运行的Next.js服务、数据库等占用内存的进程,释放资源后再执行构建,构建完成后重启服务即可。
  • 规避方案:本地构建完成后直接将.next文件夹、package.json等必要文件上传到服务器,跳过服务器端构建步骤,彻底避免服务器内存不足的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:00