我用的是Next.js和Vercel。这是我的.env.local
文件:
# Created by Vercel CLI
VERCEL="1"
VERCEL_ENV="development"
VERCEL_URL=""
VERCEL_GIT_PROVIDER=""
VERCEL_GIT_REPO_SLUG=""
VERCEL_GIT_REPO_OWNER=""
VERCEL_GIT_REPO_ID=""
VERCEL_GIT_COMMIT_REF=""
VERCEL_GIT_COMMIT_SHA=""
VERCEL_GIT_COMMIT_MESSAGE=""
VERCEL_GIT_COMMIT_AUTHOR_LOGIN=""
VERCEL_GIT_COMMIT_AUTHOR_NAME=""
我有一个组件正在尝试访问:process.env.NEXT_PUBLIC_VERCEL_ENV
,以确保它在development
环境中。
这就是我在运行npm run dev
时得到的结果。
来自服务器的日志:
上面的原木很有道理。因为它在本地服务器上运行以呈现页面。
但是当我的客户端代码试图做同样的事情时,我得到的是:
我就是这么做的:
console.log(`process.env.NEXT_PUBLIC_VERCEL_ENV: ${JSON.stringify(process.env.NEXT_PUBLIC_VERCEL_ENV)}`);
console.log(`process.env.VERCEL_ENV: ${JSON.stringify(process.env.VERCEL_ENV)}`);
在客户机上,VERCEL_ENV
应该是未定义的,但是NEXT_PUBLIC_VERCEL_ENV
应该是development
,对吗?
会发生什么事?
更新
我甚至尝试将NEXT_PUBLIC_VERCEL_ENV="development"
添加到.env.local
文件中。但到目前为止,结果是一样的。
发布于 2021-06-02 10:41:11
NEXT_PUBLIC_VERCEL_ENV="development"
您将可以在任何地方(在浏览器和服务器中)访问它。
VERCEL_ENV="development"
您只能在服务器中访问此内容,在浏览器中它将显示未定义的内容。
请注意,在.env.local
文件中添加或进行任何更改后,您必须重新启动服务器,否则,如果您console.log
变量,它将显示console.log
。
https://stackoverflow.com/questions/67802870
复制相似问题