ng 构建在 AWS 中使用 'Javascript out of heap memory' 的 codeBuild 失败

ng build fail at codeBuild with 'Javascript out of heap memory' in AWS

我正在为我的 angular-7 项目使用 AWS 代码构建。我在现有项目中安装 AWS-amplify,然后在构建 AWS 服务 (codeBuild) 时出现以下错误。

ng build --prod: Javascript out of heap memory

本地构建 运行 成功,但不知道管道 (codeBuild) 阶段失败的真正原因。

像这样 question 也尝试了 Whosebug 的一些帮助,但都是徒劳的。知道为什么 AWS 代码构建有这个问题而不是本地代码构建以及解决这个问题的解决方案。谢谢

经过 AWS 文档和论坛的大量研究。得到以下解决方案,如下所示。

  1. 在code-build的ENV变量中添加内存

    • 打开 CodeBuild 服务并打开您的项目。

    • 点击build details会出现一段 环境变量。

    • 编辑 ENV 变量并在附加配置中添加 低于您要求的值。

    图中显示的值为--max_old_space_size=4096.

  2. 根据需要增加计算值。

    • 按照上述步骤进行附加配置并根据需要更改计算值。

如果您使用的是 AWS CDK,则可以更改代码管道对象上的默认计算类型。

TypeScript 示例:

const pipeline = new CodePipeline(this, 'Pipeline', {
    codeBuildDefaults: {
        buildEnvironment: {
            computeType: ComputeType.MEDIUM,
        },
    },
});

选项是:

  • 小(默认)
  • X2_LARGE

您可以在文档中找到有关选项的更多信息:https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_codebuild.ComputeType.html