很多时候,我们在.env.development中写了NODE_ENV=‘development’,在.env.production中写了NODE_ENV='procution’中,其实NODE_ENV是默认就有的。
我们先看个改变——模式
模式是 Vue CLI 项目中一个重要的概念。默认情况下,一个 Vue CLI 项目有三个模式:
- development 模式用于 vue-cli-service serve
- test 模式用于 vue-cli-service test:unit
- production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e
你可以通过传递 --mode 选项参数为命令行覆写默认的模式。例如,如果你想要在构建命令中使用开发环境变量:
vue-cli-service build --mode development
当运行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入。如果文件内部不包含 NODE_ENV
变量,它的值将取决于模式,例如,在 production 模式下被设置为 “production”,在 test 模式下被设置为 “test”,默认则是 “development”。
这里意思是说,若在环境配置的文件中没有定义NODE_ENV,webpack也会为我们自动生成一个叫NODE_ENV的环境变量,它的值取决于哪种模式。
实际展示:
1.开发模式:
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
},
.env.development没有定义NODE_ENV变量
console.log("NODE_ENV:",process.env.NODE_ENV);
结果:
2.生产模式
项目中根本没有定义env.production文件
打包中: