Ionic 5执行ionic serve报JavaScript堆内存不足,NODE_OPTIONS配置无效如何解决
可行解决方案
- 确认环境变量生效范围
Windows系统中set命令设置的环境变量仅对当前终端会话生效,重启终端/项目后配置会失效。需要永久生效可手动在系统环境变量中新增NODE_OPTIONS变量,值设为--max_old_space_size=8192,配置完成后重启终端生效。
Mac/Linux系统中不可使用Windows的set命令,需执行export NODE_OPTIONS=--max_old_space_size=8192,永久生效可将该命令写入~/.bashrc或~/.zshrc文件后执行source ~/.bashrc(对应配置文件)生效。 - 执行命令时直接指定内存参数
无需依赖全局环境变量,可在启动命令中直接注入内存配置:- Windows CMD:
node --max_old_space_size=8192 node_modules/@ionic/cli/bin/ionic serve - Windows PowerShell:
$env:NODE_OPTIONS="--max_old_space_size=8192"; ionic serve - Mac/Linux:
NODE_OPTIONS=--max_old_space_size=8192 ionic serve
- Windows CMD:
- 升级存在内存泄漏的依赖
旧版本Ionic CLI、Angular构建工具等存在已知内存泄漏问题,可先升级对应依赖:- 全局升级Ionic CLI:
npm install -g @ionic/cli@latest - 项目内升级构建相关依赖,如Angular项目可将
@angular-devkit/build-angular升级到兼容的最新稳定版本
- 全局升级Ionic CLI:
- 调整serve参数降低内存占用
开发模式下默认生成的sourcemap、调试信息会占用大量内存,可添加参数关闭对应功能:
也可临时使用生产模式启动降低内存占用:ionic serve --source-map=falseionic serve --prod - 清理项目缓存重新安装依赖
旧的构建缓存、损坏的依赖文件也可能导致内存异常,删除项目下的node_modules、package-lock.json/yarn.lock、www、.angular、.cache等目录文件,重新执行npm install安装依赖后再启动项目。 - 更换64位Node.js版本
32位Node.js最大内存上限仅为4GB,设置8GB内存参数不会生效,可卸载当前32位版本,安装对应系统的64位Node.js LTS版本即可。
内容的提问来源于stack exchange,提问作者Pushprajsinh Chudasama
相关产品推荐
相关产品推荐

