背景
我们知道,在process.env
中并没有NODE_ENV
这个变量,但是我们却可以在项目的代码中使用process.env.NODE_ENV这个值来判断当前是development环境还是production环境,然后进行后续的逻辑操作。
这说明,在vite内部,对process.env.NODE_ENV有赋值的操作,但是在公司项目中,启动的时候不管是serve还是build,在在tailwind.config.js
中打印process.env.NODE_ENV变量,NODE_ENV
均为development
,这就让人感觉很困惑。
当时为了简单处理,使用了行内npm scrips配置,即在启动服务的时候,设置process.env.NODE_ENV的值,如下所示:
"scripts": {"serve": "cross-env NODE_ENV=development vite","build": "cross-env NODE_ENV=prod vite build --mode prod","build-v1": "cross-env NODE_ENV=v1 vite build --mode v1",
},
后来一直觉得不妥,应该有更为简单合理的方式去判断当前项目所处的环境,毕竟vite中会有.env
文件来让我们配置环境变量,应该跟process.env.NODE_ENV有些许关系。
于是,决定深入vite源码去剖析process.en