【问题标题】:Angular 7 - JavaScript heap out of memory errorAngular 7 - JavaScript 堆内存不足错误
【发布时间】:2020-08-07 12:20:17
【问题描述】:

在 Angular 7 应用程序中,当我执行 ng serve 命令时,它会抛出“JavaScript heap out of memory”错误。

从不同的 SO 答案中,我可以理解该问题是由于分配给 Node.js 的内存不足所致。正如他们在回答中提到的,通过执行以下命令,我可以编译/构建 Angular 应用程序。

node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng serve

但是我需要将这个内存分配代码写在 package.json 或一些配置文件中,这样我就不需要每次都执行整个命令。同样期望,代码逻辑应该适用于所有环境,并且在构建更高的环境期间不应该产生任何问题。

谁能帮我解决这个问题。下面是我的 package.json 代码。

"scripts": {
    "ng": "ng",
    "start": "ng serve --proxy-config proxy.config.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

【问题讨论】:

标签: javascript node.js angular angular7


【解决方案1】:

第一次运行这个:

 npm install -g increase-memory-limit 

然后在您的 package.json 文件中添加这一行:

"myCustomMemoryComm ": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng"

像这样:

"scripts": {
            "ng": "ng",
            "start": "ng serve --proxy-config proxy.config.json",
            "build": "ng build",
            "test": "ng test",
            "lint": "ng lint",
            "e2e": "ng e2e",
            "myCustomMemoryComm": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng"
          },

那么你的进一步命令将是每次运行项目(服务):

npm run myCustomMemoryComm -serve

或者直接在控制台上运行这个:

 node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng

对于生产构建

  node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/your-project-name/ --prod=true

【讨论】:

  • 恐怕如果它在通过 azure devops 构建 prod 期间导致任何错误,因为我们可能无法在 prod 构建期间执行第一个命令。我想在终端中执行相同的 ng serve 或 ng build 。是否可以相应地修改 package.json 文件。
猜你喜欢
  • 2017-10-10
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 2019-07-15
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多