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

truffle使用0.6.0~0.7.6版本solc编译时内存不足如何解决

该问题本质是Node.js 16.x版本与solc 0.6.0~0.7.6版本的JavaScript绑定包存在已知内存泄漏缺陷,编译阶段会无限制占用内存最终触发溢出,与合约代码本身无直接关联,可通过以下方案解决:

可行解决方案
  • 调整Node进程内存上限
    运行truffle命令前手动指定Node堆内存大小,将上限调整为4GB(可根据设备配置上调),对应命令:
    # macOS/Linux 环境
    NODE_OPTIONS=--max-old-space-size=4096 truffle migrate
    # Windows 环境(CMD)
    set NODE_OPTIONS=--max-old-space-size=4096
    truffle migrate
    # Windows 环境(PowerShell)
    $env:NODE_OPTIONS="--max-old-space-size=4096"
    truffle migrate
    
  • 降级Node.js版本
    卸载当前Node.js 16.2.0,安装Node.js 14.x LTS版本(推荐14.19.3),该版本与Truffle 5.4.x、solc 0.6~0.7.x系列兼容性最优,可彻底解决该版本区间的内存溢出问题。
  • 启用solc优化器并清除编译缓存
    修改truffle-config.js中的编译器配置,开启编译优化减少内存占用:
    module.exports = {
      compilers: {
        solc: {
          version: "^0.6.0",
          settings: {
            optimizer: {
              enabled: true,
              runs: 200 // 可根据业务需求调整数值
            }
          }
        }
      }
    }
    
    配置完成后先执行truffle clean清除旧的编译缓存,再重新执行迁移操作。
  • 使用原生solc二进制替代JS绑定版本
    本地安装对应版本的原生solc编译器,在truffle-config.js中指定原生编译器路径,规避JS版本的内存泄漏问题:
    compilers: {
      solc: {
        version: "^0.6.0",
        path: "/usr/local/bin/solc" // 替换为本地solc的实际安装路径
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:24:06