Angular 构建失败报错 “JavaScript heap out of memory” 的解决办法
栏目: JavaScript · 发布时间: 7年前
内容简介:报错信息很直观地指出是内存溢出了。是什么导致了内存溢出呢?其根本原因在于 nodejs 默认限制了最大可使用的内存大小。nodejs V8 引擎在 64 位机器上默认限制使用内存最大不超过 1.7GB,超过这个限制官方建议尝试优化为多线程方式。解决办法可以是增加 nodejs 可使用的最大内存大小,也可以从降低 Angular 构建内存消耗的角度入手。
报错信息很直观地指出是内存溢出了。是什么导致了内存溢出呢?其根本原因在于 nodejs 默认限制了最大可使用的内存大小。
nodejs V8 引擎在 64 位机器上默认限制使用内存最大不超过 1.7GB,超过这个限制官方建议尝试优化为多线程方式。
解决办法可以是增加 nodejs 可使用的最大内存大小,也可以从降低 Angular 构建内存消耗的角度入手。
解决办法一: 设置 nodejs 配置项 配置项 max_old_space_size
如果希望超越 V8 引擎默认的内存大小限制,可以通过设置配置项 max_old_space_size
来解决。
-
方法一:设置环境变量
NODE_OPTIONS
示例:
# windows set NODE_OPTIONS=--max_old_space_size=4096 # mac/linux export NODE_OPTIONS=--max_old_space_size=4096
-
方法二:在运行命令中增加
--max_old_space_size=4096
例如可以修改 package.json
的 scripts
脚本,示例如下:
{
"scripts": {
"serve": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng serve",
"prod": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng build --prod",
}
}
解决办法二:关闭 sourcemap
对于越来越庞大的项目,Angular 编译时间、内存消耗也越来越长,其中 sourceMap
的生成占据了绝大部分的时间。
在开发过程中可以关闭 sourceMap
的生成,加快编译构建的速度。方法为在 angular.json
中设置 build.options.sourceMap
的值为 false
,同时在 tsconfig.json
中设置 compilerOptions.sourceMap
的值为 false
。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 谈 DevOps 平台落地:前端项目构建又失败了
- OpenJDK Docker 镜像构建失败,混乱的版本号要背锅
- 持续集成之整合Jenkins与代码质量管理平台Sonar并实现构建失败邮件通知
- 快速失败机制 & 失败安全机制
- 通过不断地失败来避免失败,携程混沌工程实践
- 快速失败(fail-fast)和安全失败(fail-safe)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Parsing Techniques
Dick Grune、Ceriel J.H. Jacobs / Springer / 2010-2-12 / USD 109.00
This second edition of Grune and Jacobs' brilliant work presents new developments and discoveries that have been made in the field. Parsing, also referred to as syntax analysis, has been and continues......一起来看看 《Parsing Techniques》 这本书的介绍吧!