我最近在 AWS Amplify 上部署了下一个应用程序,并了解到 Amplify 无法访问我的环境变量。但是,如果我使用根目录中的 .env 文件进行生产,它可以工作,但 Amplify 环境变量不起作用。我尝试根据 AWS amplify 文档更改构建设置。 请帮忙。
构建设置
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- env | grep -e MONGODB_URI >> .env.production
- env | grep -e NEXT_PUBLIC_ >> .env.production
- npm run build
artifacts:
baseDirectory: .next
files:
- '**/*'
cache:
paths:
- node_modules/**/*
- .next/cache/**/*
如果有帮助,请告诉我这条线 “要修改应用程序的构建规范,请选择“编辑”。或者,您可以下载 YML 文件并在存储库的根目录中部署到 amplify.yml 以覆盖此设置。”
如何使用根目录中的 yml 文件一劳永逸地解决此问题
添加 echo env 为我解决了这个问题 对于您的案例
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- echo "EMAIL=$EMAIL" >> .env
- echo "YOUR_EMAIL=$YOUR_EMAIL" >> .env
- npm run build
artifacts:
baseDirectory: .next
files:
- '**/*'
cache:
paths:
- node_modules/**/*
- .next/cache/**/*
更改 amplify.yml 后,您可以再次重新启动/重新部署
您还可以查看 AWS 的文档,在构建时间放大期间添加环境