本地运行Next.js时如何读取.vercel目录下的环境变量?
解决Next.js读取.vercel目录下环境变量的问题
首先,vercel env pull拉取的环境文件完全可以用于本地开发或构建,下面是几种让Next.js读取这些文件的实用方法:
方法1:启动命令中指定env文件路径
Next.js支持通过--env-file参数直接指定环境文件位置,开发、构建阶段都适用:
- 启动开发服务器:
next dev --env-file .vercel/env.production.local - 执行生产构建:
next build --env-file .vercel/env.production.local - 运行构建产物:构建时已注入环境变量,
next start无需额外参数
方法2:通过环境变量指定dotenv配置路径
Next.js底层依赖dotenv,可通过DOTENV_CONFIG_PATH环境变量指定要加载的文件:
DOTENV_CONFIG_PATH=.vercel/env.production.local next dev
适合不想在命令中写长参数的场景,效果和方法1一致。
方法3:创建软链接到根目录
如果不想每次启动都加参数,可把.vercel里的env文件软链接到Next.js默认读取的根目录位置:
- macOS/Linux:
ln -s .vercel/env.production.local .env.local - Windows(命令提示符):
mklink .env.local .vercel\env.production.local - Windows(PowerShell):
New-Item -ItemType SymbolicLink -Path .env.local -Target .vercel\env.production.local
这样Next.js会自动读取根目录的.env.local,间接加载.vercel里的文件。
注意事项
- 敏感变量:确保
.vercel和生成的软链接文件都在.gitignore中,避免提交敏感信息到版本库 - 环境区分:如果拉取的是 staging 等其他环境变量,对应修改文件路径即可,比如
.vercel/env.staging.local
内容的提问来源于stack exchange,提问作者Thijs Koerselman
相关产品推荐
相关产品推荐

