# webpack 编译时内存溢出处理

# 1. 介绍

错误提示:

JavaScript heap out of memory

内存溢出:

  • nodejs 使用的内存超过限制
  • nodejs V8 引擎在 64 位机器上默认限制使用内存最大不超过 1.7GB

原因分析:

  1. 项目比较大

    • 依赖的第三方库比较多
    • 同时编译多个页面(多出口的情况)
  2. 在 src 目录下存放并引入第三方库,编译时开启了 ESLint,导致 ESLint 校验第三方库占用非常高的内存

# 2. 解决方案

  1. 手动设置 nodejs 可以使用的最大内存

    • 通过 cross-env 设置临时环境变量 NODE_OPTIONS=--max_old_space_size=4096
    {
      "scripts": {
        "serve": "cross-env NODE_OPTIONS=--max_old_space_size=4096 NODE_ENV=development webpack serve"
      }
    }
    
  2. 将第三方库添加进 .eslintignore

    libs/my-lib
    

# 3. 参考

本章目录