设置 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"