Javascript process.env.NODE_env是否设置为';生产';自动地

Javascript process.env.NODE_env是否设置为';生产';自动地,javascript,node.js,express,heroku,environment-variables,Javascript,Node.js,Express,Heroku,Environment Variables,我在读别人的密码时遇到了这一行 if (process.env.NODE_ENV === 'production') { ... 这是一个带有express server和reactjs前端的node.js应用程序。假设我们将其部署到heroku,它会自动获得这个NODE_ENV变量(或由heroku自己设置),还是在development server中设置其他ENV变量时必须手动设置 process.env是指系统上的环境变量。这在很大程度上取决于应用程序运行的位置和系统的配置方式。Her

我在读别人的密码时遇到了这一行

if (process.env.NODE_ENV === 'production') { ...

这是一个带有express server和reactjs前端的node.js应用程序。假设我们将其部署到heroku,它会自动获得这个NODE_ENV变量(或由heroku自己设置),还是在development server中设置其他ENV变量时必须手动设置

process.env是指系统上的环境变量。这在很大程度上取决于应用程序运行的位置和系统的配置方式。Herocku不知道您的应用程序的特定版本是否正在测试或生产中。因此,开发人员定义了一个环境,并在该环境中添加了“production”作为变量

如果使用npm,可以使用脚本命令添加变量

{
  ..
  "scripts": {
    "dev": "corss-env ENVIRONMENT=development ..",
    "prod": "cross-env ENVIRONMENT=production .."
  }
  ..
}
并根据设置使用适当的命令运行


如本文所述,如果在Heroku上部署NODE_ENV,则会将其默认设置为production per default:

在Heroku的项目中,您可以设置所有环境变量。 进入您的项目>设置>配置变量并设置NODE_ENV production