首页 > 解决方案 > Universal 中的 NODE_ENV 为“无”,但 process.env 显示“生产”

问题描述

我有一个 Angular Universal 构建,它使用 Webpack 来捆绑server.ts文件。我知道设置为无的配置mode: noneNODE_ENV。令我困惑的是,我cross-env NODE_ENV=production在 server build 命令之前有一个 console.log 正在运行,它正在显示:

console.log(process.env.NODE_ENV) // none
console.log(process.env) // {..., NODE_ENV: production, ... }

我正在使用运行服务器heroku local

标签: node.jsangular

解决方案


在Angular Universal 构建中,webpack.server.config.js设置为 'none'mode: noneNODE_ENV

它进行这种替换的方式实际上是将任何对的引用替换为process.env.NODE_ENVstring "none",而不是process.env直接设置值:

// In server.ts
const nodeEnv = process.env.NODE_ENV;

// In the transpiled webpack bundled server.js
var nodeEnv = "none";

推荐阅读