【问题标题】:Allocation failed - JavaScript heap out of memory in Angular 11 while ng serve分配失败 - 当 ng serve 时,Angular 11 中的 JavaScript 堆内存不足
【发布时间】:2021-08-17 06:50:18
【问题描述】:
  1. 我已将 Angular 版本从 5.2 升级到 11.2
  2. 在升级 Angular 和所有库后,当我启动服务器 (ng serve) 得到 分配失败 - JavaScript 堆内存不足
  3. 它还会生成 1 个包含信息的文件,但我没有得到

你能帮我解决这个问题吗?

  1. Angular 版本和详细信息

【问题讨论】:

  • 这取决于您的 PC 内存大小,您可以将其添加到您的 package.json 文件中:{ ... "start": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng serve", ..}
  • @sohaiebazaiez 我已经尝试过,但出现多个错误 "export 'DOCUMENT' (imported as 'i28') was not found in '@angular/platform-b​​rowser'
  • 更新的时候,通常最好是更新版本,一个一个...
  • @StPaulis 是的,我已经一一升级了所有库并解决了所有问题,但是当我尝试编译时,它会出现 javascript heap out of memory 错误
  • @Chaudhary 看起来你有 2 个问题:一个你通过添加 --max_old_space_size 解决的内存错误和很多由 export 'DOCUMENT' 引起的错误

标签: javascript node.js json angular angular11


【解决方案1】:

设置环境变量:

SET NODE_OPTIONS=--max_old_space_size=8048

【讨论】:

  • 设置后我得到一些 DOCUMENT 错误,我最后添加了屏幕截图,并且我将 DOCUMENT 移动到@angular/common,但我仍然收到错误
【解决方案2】:

您可以为构建/启动任务分配更多内存以进行编译:

node --max_old_space_size=4096 ./node_modules/.bin/ng build

并且,根据对这个问题的回答:"export 'DOCUMENT' was not found in '@angular/platform-browser'DOCUMENT 已移至 @angular/common。因此,您还必须更改导入才能编译代码。

【讨论】:

  • 当我设置 node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng serve 时,我启动了我的服务器但得到了编译错误,这来自.ngFctory 文件,并且我已经从 @angular/common 导入 DOCUMENT
  • 我添加了DOCUMENT错误的截图,请查看。
【解决方案3】:

我发现这个错误来自源映射的生成。禁用源映射将使错误消失。

由于大部分都需要source maps,所以在npm脚本中使用增加内存的解决方案而不是禁用source maps,就可以解决了。

示例:

scripts: {
  "build": "node --max_old_space_size=6000 ./node_modules/@angular/cli/bin/ng build",
  "serve": "node --max_old_space_size=6000 ./node_modules/@angular/cli/bin/ng serve"
}

【讨论】:

    猜你喜欢
    • 2020-06-25
    • 2018-12-05
    • 2019-05-05
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2020-03-20
    • 2016-12-19
    • 1970-01-01
    相关资源
    最近更新 更多