借助process.env. NODE_ENV环境变量,可以设置不同的请求接口地址。
1.初始化项目后,安装cross-env
yarn add cross-env
安装这个,主要是为了跨平台设置process.env. NODE_ENV环境变量
2.修改package.json——scripts
"dev": "cross-env NODE_ENV=dev vue-cli-service serve",
"build-dev": "cross-env NODE_ENV=dev vue-cli-service build",
"build-prod": "cross-env NODE_ENV=prod vue-cli-service build"
build-dev,把环境变量设置成dev,并打包
3.封装axios请求实例
import axios from 'axios'
let baseURL
if (process.env.NODE_ENV === 'dev') {
baseURL = 'http://192.168.1.88:3000/api'
}
if (process.env.NODE_ENV === 'prod') {
baseURL = 'http://192.168.1.100:3000/api'
}
const http = axios.create({
baseURL: baseURL,
timeout: 1000
})
console.log('环境:', process.env.NODE_ENV, '请求地址:', baseURL)
export default http
华丽的分割线
下面是另外一种方式,不用安装cross-env,直接使用--mode,配合环境文件使用。
具体见https://blog.csdn.net/zz00008888/article/details/109536426
大致如下:
// 项目根目录下新建两个文件.env.dev和.env.prod,内容如下
NODE_ENV = 'dev'
VUE_APP_BASE_URL = 'http://www.baidu.com'
// 文件里面的 VUE_APP_xxx 是固定写法,后面的 xxx 自己可以随便起名字,用来定义不同环境下的baseurl
"scripts": {
"serve": "vue-cli-service serve --mode dev",
"build": "vue-cli-service build --mode prod"
}
下面process就是一个全局的属性了, js、vue 文件都可以直接使用
console.log(process, process.env.VUE_APP_BASE_URL)
通过环境变量配置 axios
import axios from 'axios'
const http = axios.create({
baseURL: process.env.VUE_APP_BASE_URL,
timeout: 1000
})
export default http
网友评论