node.js - Azure 构建上的 JavaScript 堆内存不足
问题描述
我正在使用带有 Angular 和 .NET Core 的 aspnetboilerplate。当我尝试在 Azure 上部署应用程序时,它显示:
致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足
这是我的天蓝色管道:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '12.x'
displayName: 'Install Node.js'
- script: |
npm install -g @angular/cli
npm install
npm run build-prod
ng build --c=production
displayName: 'npm install and build'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)/dist'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
CleanTargetFolder: true
OverWrite: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
在 package.json 文件中,我添加了build-prod属性。
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --port 4200",
"hmr": "ng serve --host 0.0.0.0 --port 4200 --hmr",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor",
"lint": "tslint --force --project src/tsconfig.json src/**/*.ts -t verbose",
"build-prod": "node --max-old-space-size=8000 ./node_modules/@angular/cli/bin/ng"
},
解决方案
Azure DevOps 中 Azure Pipeline 的解决方案:
- task: PowerShell@2
displayName: Build
env:
NODE_OPTIONS: --max_old_space_size=16384
在您的构建任务中设置环境变量NODE_OPTIONS
的值。--max_old_space_size=16384
推荐阅读
- openshift - 在 rhel 上部署 openshift 4 集群
- cics - 阅读 CICS 中的更新
- sql - 在 Prisma/Graphql 一对一和一对多上遇到困难
- machine-learning - 如何在模型输出中附加张量?
- asp.net-core - 如何将 Blazor(客户端)添加到现有的 ASP.NET Core(服务器端)或 ASP.NET Core Web API?
- excel - VBA 宏根据匹配的 ID 列替换数据
- windows - 您可以使用 DFS 管理从文件夹中复制单个文件吗?
- r - 如何在 knitr 块输出中显示 UTF-8 字符?
- javascript - 如何在html按钮(Jquery mobile)中显示计时器?
- xcode - Xcode 构建缺少预期的 TARGET_BUILD_DIR 构建设置