我在Vercel上有一个Next Js应用程序,我已经设置了与数据库相关的各种环境变量,无论是开发还是生产。所有这些变量都起作用。
但是我不知道如何使用我在开发版本的本地环境中使用的process.env.NODE_ENV。例如,如果我想在dev中更改文本徽标,它就不起作用(在本地是,但在Vercel上否)
<span>{process.env.NODE_ENV === "development" ? `${siteConfig.name} DEV` : siteConfig.name}</span>
字符串
我将dev分支设置为预览。
的数据
我也试着用这种方式设置这些变量,但是当然,它不起作用
这是处理这件事的正确方法吗?例如,我如何根据环境改变用户界面?谢啦,谢啦
2条答案
按热度按时间svmlkihl1#
运行
next build
会自动设置NODE_ENV=production
。由于Vercel上的生产和预览部署都运行
next build
,它们都自动设置NODE_ENV=production
,因为next build
执行生产优化,其中之一是确保React使用生产版本。我建议为您的用例使用不同的env变量名,例如
SITE_NAME=Dev
。然后你可以像下面这样编写代码:字符串
cczfrluj2#
Vercel docs状态:
如果未分配环境变量
NODE_ENV
,则Next.js在运行next dev
命令时自动分配development
,或为所有其他命令分配production
。在您的情况下,请考虑完全避免使用
NODE_ENV
,而是使用Vercel System Variables;特别是VERCEL_ENV
,它告诉你部署和运行应用程序的Vercel环境。x1c 0d1x的数据