Vue项目 .env .env.development .env

1.模式
模式是 Vue CLI 项目中一个重要的概念 。默认情况下 , 一个 Vue CLI 项目有三个模式:
模式用于 vue-cli-模式用于 vue-cli- build 和 vue-cli- test: 模式用于 vue-cli- test:unit
"scripts": {"dev": "vue-cli-service serve","serve": "vue-cli-service serve","build": "vue-cli-service build","build:test": "vue-cli-service build --mode test","build:pre": "vue-cli-service build --mode pre","lint": "vue-cli-service lint","test:unit": "vue-cli-service test:unit"},
你可以通过传递 --mode 选项参数为命令行覆写默认的模式 。例如 , 如果你想要在构建命令中使用开发环境变量:
vue-cli-service build --mode development
2.不同的模式会有不同的环境变量

Vue项目 .env .env.development .env

文章插图
在模式下的值会被设置为 “”
在 模式下的值会被设置为 “”
3.文件加载及顺序
.env 无论开发环境还是生产环境都会加载的配置文件
.env. 开发环境加载的配置文件
.env. 生产环境加载的配置文件
研发环境 加载顺序:.env .env. 同一个变量名 后者会覆盖前者
生产环境 加载顺序:.env .env. 同一个变量名 后者会覆盖前者
为什么我们本地启加载 .env. 服务器加载 .env. ??
我们平常通过npm run serve启动时 , 我们本地系统的环境变量 值设置为  , 这时就会先后加载.env和.env.这两个文件 。
而当我们打包到服务器后 , 服务器的值被设置为 , 则此时Vue仍会先加载.env文件 , 然后加载.env.文件 。
强调一下: .env.默认只有两种状态即和 , 指代本地开发即环境(本地的开发) , 而代表发布在任何服务上的服务(不管是dat、uat还是生产环境) , node是不知道你服务是测试还是正式 , 除非你手动指定 。通常认为都是线上环境 。所以可以这样认为代表本地开发环境 , 代表线上环境(包括dat、uat和生产环境等)
我为什么会强调这一点呢?
【Vue项目 .env .env.development .env】因为有人居然用.env.中的来代表dat , uat等线上的测试环境 , 所以特别强调一下 , 代表本地的开发环境 。