了解process.env.NODE_ENV

前端构建/或者node开发时经常会遇到这个变量,但这个变量到底什么来历,能有什么影响呢,之前并没有系统了解下,这里就整理mark下。

  1. NODE_ENV是个环境变量
  2. 安装NodeJS,或者Webpack并不会带来这个变量的设定,我们往往需要自己设定,在没有进行设定前,如果打印会发现是undefined
  3. 这个环境变量是Express带来的,当前算是个约定俗称的实践。
  4. NODE_ENV设定为development/production还是其它值有没有区别取决于所采用的工具是不是依赖该值,比如webpack中我们有时会根据NODE_ENV来选择性开启某些插件处理,比如哈希指纹生成等

项目中操作修改该值

如果是CI构建等,我们往往在docker容器级别就修改了该值。而本地,不同项目我们有时是需要灵活设定的,因此项目级控制比较好。

1
$ cross-env NODE_ENV=production node testaaa.js

环境变量

以前在搞java开发时,经常要配置Path,ClassPath,这些即系统环境变量。

查看Mac下的环境变量

1
2
3
$ env

$ echo $NODE_ENV

写在最后

done