设置 NODE ENVproduction
生产部署在很多方面都有所不同,但在生产中部署时的标准约定是定义一个名为 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’ 时,运行 npm install
时, package.json 文件中的所有 devDependencies
将被完全忽略。你还可以使用 --production
标志强制执行此操作:
npm install --production
要设置 NODE_ENV
,你可以使用任何这些方法
方法 1:为所有节点应用程序设置 NODE_ENV
Windows:
set NODE_ENV=production
Linux 或其他基于 unix 的系统:
export NODE_ENV=production
这为当前的 bash 会话设置了 NODE_ENV
,因此在此语句之后启动的所有应用程序都将 NODE_ENV
设置为 production
。
方法 2:为当前应用设置 NODE_ENV
NODE_ENV=production node app.js
这将仅为当前应用设置 NODE_ENV
。当我们想要在不同环境中测试我们的应用时,这会有所帮助
方法 3:创建 .env
文件并使用它
这使用了这里解释的想法。有关详细说明,请参阅此帖子。
基本上你创建 .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"