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

Angular项目运行ng serve报JavaScript堆内存不足,ng build --prod正常

问题原因

你遇到的是Angular开发服务启动时Node.js堆内存溢出错误。ng build --prod能正常执行是因为生产构建默认不会开启开发模式下的增量编译、全量源码映射、热更新监听等高内存占用特性,内存需求远低于开发启动场景。你之前手动配置8G堆内存不生效,通常是执行方式或配置覆盖问题导致。

解决方案

方案1:正确配置Node堆内存上限

不要直接在命令行执行内存参数+ng serve的组合,Windows环境下容易出现路径解析、参数不生效的问题,推荐直接在项目package.json中配置自定义启动脚本:
打开package.json,找到scripts配置块,新增如下配置:

"scripts": {
  "start": "node --max_old_space_size=12288 ./node_modules/@angular/cli/bin/ng serve",
  // 保留原有其他脚本配置
}

后续启动项目直接执行npm run start即可,12288对应12G堆内存,可根据你设备的实际内存大小调整。

方案2:优化开发模式配置降低内存占用

修改angular.json中开发服务的配置项,砍掉非必要的高内存开销功能:
找到 projects > 你的项目名 > architect > serve > options 节点,新增/修改如下配置:

"options": {
  // 禁用样式、第三方依赖的源码映射,仅保留业务代码源码映射,可直接全设为false彻底关闭
  "sourceMap": { "scripts": true, "styles": false, "vendor": false },
  // 开发模式关闭AOT编译和构建优化
  "aot": false,
  "buildOptimizer": false
}

如果项目包含大量路由模块,检查是否开启了路由懒加载,避免所有模块打包到同一个chunk导致内存占用过高。

方案3:修复版本兼容问题

Node 14.17.0和Angular 11.0.5存在已知的底层内存泄漏问题,二选一调整版本即可:

  • 降级Node版本到12.x LTS稳定版,和Angular 11的兼容性最优
  • 升级Angular 11的小版本到11.2.x最终稳定版,修复官方已知的内存泄漏问题

临时应急方案

如果暂时不想调整配置,每次启动前先清空Angular缓存再启动即可:

ng cache clean
# 再执行启动命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:15:03