生产部署将在许多方面有所不同,但是在生产中进行部署时的标准约定是定义一个称为的环境变量NODE_ENV并将其值设置为“ production”。
应用程序中运行的任何代码(包括外部模块)都可以检查以下值NODE_ENV:
if(process.env.NODE_ENV === 'production') { // 我们正在生产模式下运行 } else { // 我们正在开发模式下运行 }
当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文件并使用它
这使用了此处说明的想法。请参阅此帖子以获取更多详细说明。
基本上,您创建.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"