You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular应用部署Azure App Service时遇堆内存不足错误求助

部署Angular应用到Azure Web App Service时遇到JavaScript堆内存不足错误

问题详情

  • 部署流程:
    1. 在Azure DevOps构建管道生成了大小为150MB的zip格式工件
    2. 尝试使用发布管道的AzureWebApp@1和AzureRmWebAppDeployment@4两种任务部署至Azure Web App Service
    3. 部署过程均失败,抛出JavaScript堆内存不足错误

错误堆栈信息

2023-08-13T05:07:14.5302848Z FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
2023-08-13T05:07:14.7863924Z  1: 00007FF6FEF489AA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4506
2023-08-13T05:07:14.7866373Z  2: 00007FF6FEF234E6 node::MakeCallback+4534
2023-08-13T05:07:14.7869155Z  3: 00007FF6FEF23E60 node_module_register+2032
2023-08-13T05:07:14.7871100Z  4: 00007FF6FF242F4E v8::internal::FatalProcessOutOfMemory+846
2023-08-13T05:07:14.7872124Z  5: 00007FF6FF242E7F v8::internal::FatalProcessOutOfMemory+639
2023-08-13T05:07:14.7873097Z  6: 00007FF6FF429674 v8::internal::Heap::MaxHeapGrowingFactor+9620
2023-08-13T05:07:14.7874238Z  7: 00007FF6FF420656 v8::internal::ScavengeJob::operator=+24550
2023-08-13T05:07:14.7875507Z  8: 00007FF6FF41ECAC v8::internal::ScavengeJob::operator=+17980
2023-08-13T05:07:14.7876896Z  9: 00007FF6FF4279F7 v8::internal::Heap::MaxHeapGrowingFactor+2327
2023-08-13T05:07:14.7878550Z 10: 00007FF6FF427A76 v8::internal::Heap::MaxHeapGrowingFactor+2454
2023-08-13T05:07:14.7879539Z 11: 00007FF6FF551D17 v8::internal::Factory::NewFillerObject+55
2023-08-13T05:07:14.7881203Z 12: 00007FF6FF5CEF06 v8::internal::operator<<+73494
2023-08-13T05:07:14.7881902Z 13: 000000B013FDC6C1
2023-08-13T05:07:15.2310298Z ##[error]Exit code 134 returned from process: file name 'C:\externals\node10\bin\node.exe', arguments "\"C:_work_tasks\AzureWebApp_18bde28a-8172-45cb-b204-5cef1393dbb1\1.225.2\azurermwebappdeployment.js\""
2023-08-13T05:07:15.2336536Z ##[section]Finishing: Deploy Azure Web App Service

解决方法

1. 提升Node.js堆内存限制

在发布管道的部署任务前添加一个Cmd/PowerShell任务,设置环境变量扩大Node.js堆内存:

set NODE_OPTIONS=--max-old-space-size=8192

或PowerShell:

$env:NODE_OPTIONS="--max-old-space-size=8192"

数值可根据实际情况调整(8192代表8GB内存)。

2. 优化工件体积

  • Angular构建时启用生产模式:执行ng build --configuration production,利用树摇、代码压缩等特性减少打包大小。
  • 清理工件中的冗余文件:确保构建输出只包含dist目录内容,排除node_modules、源码、测试文件等不必要的文件。
  • 在Azure Web App配置中开启静态内容压缩,减少传输过程中的数据量。

3. 更换部署方式

  • 使用Azure CLI直接执行Zip Deploy:添加Azure CLI任务,运行以下命令(替换占位符为你的资源信息):
az webapp deployment source config-zip --resource-group <你的资源组名称> --name <你的应用服务名称> --src $(System.ArtifactsDirectory)/<zip包路径>
  • 切换至Web Deploy模式:在AzureWebApp@1或AzureRmWebAppDeployment@4任务中选择Web Deploy作为部署方法,该模式处理大文件更高效。

4. 调整代理配置

  • 如果使用自托管代理,确保代理机器具备足够内存(建议8GB及以上)。
  • 升级代理的Node.js版本:日志显示使用Node10,建议升级到Node16或更高版本,新版本V8引擎的内存管理更高效。

内容的提问来源于stack exchange,提问作者Bernardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:16:09