📜  ng build add ram (1)

📅  最后修改于: 2023-12-03 15:17:52.107000             🧑  作者: Mango

Ng Build 添加 Ram

在进行 Angular 应用开发过程中,我们通常需要使用 ng build 命令进行项目打包。在有些情况下,我们会遇到程序因为内存不足而无法成功打包的问题。此时,我们可以通过添加 ram 的方式来解决该问题。

添加 Ram 方法

可以通过以下步骤来添加 ram:

  1. 打开 package.json 文件
  2. 在 scripts 段中找到 "build" 指令
  3. 在该指令后面添加 --max_old_space_size=8192
  4. 保存 package.json 文件

以下是一个示例的 package.json 文件,其中在 "build" 指令后面添加了 --max_old_space_size=8192:

{
  "name": "ng-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod --aot --build-optimizer",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.0.0",
    "@angular/common": "^6.0.0",
    "@angular/compiler": "^6.0.0",
    "@angular/core": "^6.0.0",
    "@angular/forms": "^6.0.0",
    "@angular/http": "^6.0.0",
    "@angular/platform-browser": "^6.0.0",
    "@angular/platform-browser-dynamic": "^6.0.0",
    "@angular/router": "^6.0.0",
    "core-js": "^2.5.4",
    "rxjs": "^6.0.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular/cli": "^6.0.0",
    "@angular/compiler-cli": "^6.0.0",
    "@angular/language-service": "^6.0.0",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~2.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^1.4.2",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.3.0",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1",
    "typescript": "^2.7.2"
  }
}
原理说明

在默认情况下,node.js 运行时只会分配小于 2GB 的内存空间进行操作。因此,在打包过程中需要使用更多内存空间时,需要利用 --max_old_space_size 参数进行内存限制。

上述示例中添加的 --max_old_space_size=8192 指定了分配最大 8GB 内存空间给打包程序。可以根据实际需求进行更改。

结论

通过添加 ram 的方式,我们可以解决程序在打包过程中因为内存不足而导致无法成功打包的问题。