一、.env配置用于区分生产环境和开发环境

一个vue-cli项目有三个模式:

development(开发环境)模式,用于vue-cli-service  serve。

production(生产环境)模式,用于vue-cli-service  build  和  vue-cli-service test:e2e。

test(测试环境)模式,用于vue-cli-service test:unit。

在根项目》package.json下修改
{
  ...
  "scripts":{
      ...
      "test":"vue-cli-service test:unit"
  }
  ...
}

一个模式可以包含多个环境变量。

也就是说,每个模式都会将NODE_ENV的值设置为模式的名称。比如在development模式下NODE_ENV的值会被设置为“development”。在production模式下NODE_ENV的值会被设置为“production”。

我们可以通过为.env文件增加后缀,来设置某个模式下特有的环境变量。

比如,在项目根目录下创建一个名为.env.development文件,那么在这个文件里面声明过的变量,就只会在development模式下被载入。

比如,在项目根目录下创建一个名为.env.production文件,那么在这个文件里面声明过的变量,就只会在production模式下被载入。

如果这个环境变量想同时在所有模式下被载入,可以声明在.env文件里。

注意一下环境变量声明的命名规范,只有以VUE_APP_开头的变量,会被webpack.DefinePlugin静态嵌入到客户端的包中。

(如果配置时项目正在运行,配置完成后需要结束项目,再次运行项目,才能生效。)

在根目录下》.env中添加代码

VUE_APP_DOMAIN=http://www.baidu.com
VUE_APP_TITLE=百度搜索
在根目录下》.env.development中添加代码
VUE_APP_DOMAIN=http://dev.baidu.com
在根目录下》.env.production中添加代码
VUE_APP_DOMAIN=http://production.baidu.com
在根目录》src》App.vue中修改代码:

<script>
...
export default{
    ...
    created(){
        console.log(process.env.VUE_APP_DOMAIN)
        console.log(process.env.VUE_APP_TITLE)
} } </script>

输入以下命令,在控制台输出http://dev.baidu.com

npm  run  serve

输入以下命令,在控制台输出http://production.baidu.com

npm run build
serve -s dist

 

实际应用在接口地址。不同环境下使用不同的接口地址,显示不同的数据。

只需要在这三个文件里面统一变量名,然后在不同文件里面改变变量的值就可以了。

 

posted @ 2021-09-29 22:06  Strugglinggirl  阅读(1022)  评论(0编辑  收藏  举报