NODE_ENV 在 Express 应用程序中没有正确比较 [重复]
Posted
技术标签:
【中文标题】NODE_ENV 在 Express 应用程序中没有正确比较 [重复]【英文标题】:NODE_ENV is not comparing correctly in an Express app [duplicate] 【发布时间】: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-env 或 dot-env 之类的东西 【参考方案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 后是否有空格。应该没有 不,没有空格。以上是关于NODE_ENV 在 Express 应用程序中没有正确比较 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
当 NODE_ENV=production 时忽略错误处理程序
是否可以使用 express.js 清除 node.js 需要缓存?