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

上传至AWS Amplify时postbuild阶段react-snap执行失败问题咨询

核心问题原因

react-snap 底层依赖 Puppeteer 实现静态页面预渲染,Puppeteer 运行需要 Chromium 及配套系统依赖。你在 CloudShell 中安装的 Chromium 完全不生效,因为 AWS Amplify 的构建流程运行在独立的托管容器中,和 CloudShell 环境无关,所有依赖需要在构建流程内配置安装。

可行解决方案

  • 第一步:修改项目根目录的 amplify.yml 配置,在预构建阶段安装 Chromium 及所有系统依赖,配置参考:
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yum install -y alsa-lib atk cups-libs gtk3 libXcomposite libXcursor libXdamage libXext libXi libXrandr libXScrnSaver libXtst pango xorg-x11-fonts-* xorg-x11-utils chromium
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
  • 第二步:修改 package.json,添加 react-snap 运行参数,跳过沙箱限制适配容器环境:
{
  "reactSnap": {
    "puppeteerArgs": [
      "--no-sandbox",
      "--disable-setuid-sandbox",
      "--disable-gpu",
      "--single-process",
      "--no-zygote"
    ]
  }
}
  • 第三步:在 Amplify 控制台的对应应用的「环境变量」页面,添加变量 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = true,避免 Puppeteer 重复下载内置 Chromium,直接使用构建阶段安装的系统版本。

配置完成后重新触发构建即可解决问题。如果依然有兼容性问题,可考虑使用 Next.js SSG 能力替代 react-snap 实现 SEO 优化,适配 Amplify 环境的成本更低。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:15:07