npm 中设置环境NODE_ENV变量,判断失败

我尝试通过package.json 的scripts脚本 修改NODE_ENV的值来区分开发环境和生产环境。

脚本
clipboard.png

判断条件
clipboard.png

结果
clipboard.png

我打印出的process.env.NODE_ENV 的值已经是production 但是判断起来依然是false。

请教一下是什么问题

阅读 4.2k
2 个回答

因为你的NODE_ENV是【production 】,多了一个空格~~
1、set NODE_ENV=production&& webpack
2、或者const isProduction = (process.env.NODE_ENV.trim()) === 'production'

原因你已经知道了,但是我还是想回答一下这个问题,因为有更好的方式。

首先,你使用 Windows 的 set 设置进程环境变量就不是一个好的做法,因为这段 build 命令无法在其它平台执行。但是如果你用 Linux 的方式(直接 key=val)又不兼容 Windows。

有一个包,叫做 cross-env,它可以用一种方式设置环境变量且兼容多种平台,例如:

cross-env NODE_ENV=production webpack
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题