SuperAPI AI 工具集

nextjs-env-variables

前端与建站

查看项目

更新于 10-15 17:28

技能介绍

用途:指导 Next.js 应用的环境变量管理,包括配置文件组织、变量类型区分、部署配置与安全校验。

文件结构:项目根目录可包含 .env(共享默认值,提交)、.env.local(本地密钥,gitignore)、.env.development、.env.development.local、.env.production、.env.production.local、.env.test 与 .env.example(文档用途,提交)。

文件优先级:从高到低为 .env.$(NODE_ENV).local、.env.local(测试环境不加载)、.env.$(NODE_ENV)、.env。例如生产环境中 .env.production.local 的值会覆盖 .env 中同名变量。

变量类型:客户端变量必须以 NEXT_PUBLIC_ 前缀,才会暴露到浏览器,客户端和服务端代码均可通过 process.env.NEXT_PUBLIC_* 访问;服务端变量(如 DATABASE_URL、JWT_SECRET、STRIPE_SECRET_KEY、SMTP_PASSWORD)仅在 API 路由、getServerSideProps 等服务端代码中可用,在浏览器组件中为 undefined。严禁把密钥放入 NEXT_PUBLIC_* 变量。

部署到 Vercel:在 Project Settings → Environment Variables 中为 Production、Preview、Development 分别配置变量;Vercel 在构建时自动暴露 NEXT_PUBLIC_* 变量。修改 NEXT_PUBLIC_* 变量后需要重新部署(如 vercel --prod),因为其值在构建时被固化。

校验:文中给出使用 python scripts/validate_env.py .env.local --framework nextjs 校验环境、用 --compare-with .env.example 对比、用 python scripts/scan_exposed.py --check-gitignore 检查安全问题,以及用 python scripts/sync_secrets.py --platform vercel 进行对比与同步的示例命令。

常见问题:浏览器中变量为 undefined 时检查是否缺少 NEXT_PUBLIC_ 前缀;修改变量未生效时重新部署;本地可用而生产失败时需确认所有变量已在 Vercel 配置。

安全清单:确保 .env.local 与 .env..local 在 .gitignore 中,不在 NEXT_PUBLIC_ 放密钥,不提交含真实密钥的 .env,.env.example 只写结构不写真实值,密钥直接在 Vercel 设置。具体脚本行为与完整实现细节暂未提供。