[Node.js]-设置生产环境变量
例子
生产部署将在许多方面有所不同,但是在生产中部署时的标准约定是定义一个称为的环境变量
NODE_ENV
并将其值设置为
production
。
运行时标志
应用程序中运行的任何代码(包括外部模块)都可以检查以下值
NODE_ENV
:
if(process.env.NODE_ENV === 'production') {
// We are running in production mode
} else {
// We are running in development mode
}
依存关系
当
NODE_ENV
环境变量设置为
production
时devDependencies,
package.json
文件中
的
所有内容将在运行时被完全忽略
npm install
。还可以使用
--production
标志来强制执行此操作:
npm install --production
对于设置,
NODE_ENV
您可以使用以下任何一种方法
方法1:为所有节点应用程序设置NODE_ENV
Windows:
set NODE_ENV=production
Linux或其他基于UNIX的系统:
export NODE_ENV=production
这
NODE_ENV
将为当前bash会话设置,因此在此语句之后启动的所有应用程序都将
NODE_ENV
设置为
production
。
方法2:为当前应用设置NODE_ENV
NODE_ENV=production node app.js
这只会
NODE_ENV
为当前应用设置。当我们想在不同环境下测试我们的应用程序时,这将有所帮助。
方法3:创建
.env
文件并使用它
参阅此帖子以获取更多详细说明: Setting Environment Variables for Node to retrieve
创建
.env
文件并运行一些bash脚本以将它们设置在环境中。
为了避免编写bash脚本,可以使用
env-cmd
包加载
.env
文件中定义的环境变量。
env-cmd .env node app.js
方法4:使用
cross-env
程序包
该 软件包 允许为每个平台以一种方式设置环境变量。
使用npm安装它之后,只需将其添加到您的部署脚本中
package.json
,如下所示:
"build:deploy": "cross-env NODE_ENV=production webpack"