如何在Vercel上管理process.env.NODE_ENV

628mspwn  于 2023-08-04  发布在  Node.js
关注(0)|答案(2)|浏览(179)

我在Vercel上有一个Next Js应用程序,我已经设置了与数据库相关的各种环境变量,无论是开发还是生产。所有这些变量都起作用。
但是我不知道如何使用我在开发版本的本地环境中使用的process.env.NODE_ENV。例如,如果我想在dev中更改文本徽标,它就不起作用(在本地是,但在Vercel上否)

<span>{process.env.NODE_ENV === "development" ? `${siteConfig.name} DEV` : siteConfig.name}</span>

字符串
我将dev分支设置为预览。

的数据
我也试着用这种方式设置这些变量,但是当然,它不起作用

这是处理这件事的正确方法吗?例如,我如何根据环境改变用户界面?谢啦,谢啦

svmlkihl

svmlkihl1#

运行next build会自动设置NODE_ENV=production
由于Vercel上的生产和预览部署都运行next build,它们都自动设置NODE_ENV=production,因为next build执行生产优化,其中之一是确保React使用生产版本。
我建议为您的用例使用不同的env变量名,例如SITE_NAME=Dev。然后你可以像下面这样编写代码:

<span>{process.env.SITE_NAME || siteConfig.name}</span>

字符串

cczfrluj

cczfrluj2#

Vercel docs状态:
如果未分配环境变量NODE_ENV,则Next.js在运行next dev命令时自动分配development,或为所有其他命令分配production
在您的情况下,请考虑完全避免使用NODE_ENV,而是使用Vercel System Variables;特别是VERCEL_ENV,它告诉你部署和运行应用程序的Vercel环境。
x1c 0d1x的数据

相关问题