vue环境变量配置之process.env解读
作者:yehaocheng520
这篇文章主要介绍了vue环境变量配置之process.env解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
vue环境变量配置process.env
在用vue框架时,经常用到两种环境,一种是开发环境,就是本地开发时的环境,一种是生产环境,就是要发布到线上的环境。
平时开发是用生产环境的,如果发布到线上时,需要切换环境为线上。如果人为去切换也是可以的,但是会容易忘记,可以通过配置不同的运行命令来自动切换环境。
下面开始:
配置环境的实现原理
实现原理就是采用node.js顶层对象中的process.env(进程环境,返回一个包含用户环境信息的对象)属性,根据各个环境的配置文件区分和切换环境
具体实例
1. 安装依赖
npm install process
2.创建.env.dev 和.env.prod两个文件
注意文件要创建在根目录下面
.env.dev文件内容如下:
NODE_ENV = 'development' VUE_APP_TITLE = 'development' /* 请求接口地址 */ VUE_APP_INTERFACE_URL="https://xxx" /* proxy代理地址 */ VUE_APP_PROXYURL='http://xxx'
.env.prod文件内容如下:
NODE_ENV='production' VUE_APP_TITLE='prod' /* 请求接口地址 */ VUE_APP_INTERFACE="https://xxx"
3.设置项目启动时默认的环境
只需要在项目启动命令后面修改需要的环境就行了,例如npm run dev,把--mode dev改为--mode prod就变成了开发环境
package.json部分内容如下:
"scripts":{ "dev":"vue-cli-service serve --mode dev", "prod":"vue-cli-service serve --mode prod" }
4.查看环境是否配置成功
在main.js文件中打印当前环境,输出就成功了
console.log(process.env.NODE_ENV)
vue3 process.env.XXX环境变量不生效
问题
使用process.env.XXX时获取不到环境变量的值:
axios.defaults.baseURL = process.env.VUE_APP_BASE_API;
解决
项目根目录下的.env.development和.env.production环境配置文件中,NODE_ENV=development的值必须和package.json文件启动配置--mode一致
//.env.development NODE_ENV=development VUE_APP_BASE_API=/api VUE_APP_BASE_URL=http://localhost:8081/ VUE_APP_PROXYURL=http://localhost:8080/
"scripts": { "serve": "vue-cli-service serve", "dev": "vue-cli-service serve --mode development", "prod": "vue-cli-service serve --mode production", },
.env.development和.env.production环境配置文件中变量名必须以VUE_APP_开头
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。