【问题标题】:NODE_ENV is not comparing correctly in an Express app [duplicate]NODE_ENV 在 Express 应用程序中没有正确比较 [重复]
【发布时间】:2019-07-27 05:37:56
【问题描述】:

我正在尝试使用 Next.js 运行快速应用程序。我基本上已经控制住了,但由于某种原因 package.json 确实将 NODE_ENV 分配给了正确的值,但是比较两者似乎不起作用。

json 中的脚本:

"scripts": {
  "dev": "nodemon start server.js",
  "build": "next build",
  "start": "set NODE_ENV=production && node server.js"
},

应用程序:

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });

无论我做什么,似乎都正确分配了值,但比较总是返回true。如果我尝试使用 == 或 === 执行 if-else 语句,则所有内容都会通过,因为它不匹配。我已经一前一后地安慰了他们俩,在末尾添加了一个数字以查看差异,除了添加的数字之外的所有内容都是正确的。

【问题讨论】:

  • 这在你使用 Mac 或 Linux 时有效,在 Windows 上你应该使用 cross-envdot-env 之类的东西

标签: node.js express


【解决方案1】:

在你的 package.json 中使用:

"scripts": {
    "dev": "nodemon start server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js"
},

请注意,我已删除您启动脚本中的 set&&
完成此操作后,请确保您正在通过执行来执行脚本

npm start

如果您仍然遇到问题,请控制台登录 process.env.NODE_ENV 以交叉检查您得到的结果。

【讨论】:

  • "'NODE_ENV' 不被识别为内部或外部命令,"这是我尝试的第一件事,以该消息结束,这就是我设置的原因,&&。
  • NODE_ENV 后是否有空格。应该没有
  • 不,没有空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多