==项目技术栈vue3 + vite + typescript ==
封装的axios内容。
import axios from 'axios'
const config: any = {
dev: {
baseUrl: 'http://baiduTest.com' // 测试接口域名
},
master: {
baseUrl: 'http://baidu.com' // 正式接口域名
}
}
// console.log('import.meta.env.MODE', import.meta.env.MODE) //如果写在console.log语句里就会报错
// 这边由于后端没有区分测试和正式,姑且都写成一个接口。
// axios.defaults.baseURL = config[import.meta.env.MODE].baseUrl 加了build报错
axios.defaults.baseURL = config[import.meta.env.MODE].baseUrl
// 携带 cookie,对目前的项目没有什么作用,因为我们是 token 鉴权
axios.defaults.withCredentials = true
// 请求头,headers 信息
// 默认 post 请求,使用 application/json 形式
axios.defaults.headers.post['Content-Type'] = 'application/json'
const token = localStorage.getItem('token')
if (token) {
axios.defaults.headers.common['token'] = token
}
// 请求拦截器,内部根据返回值,重新组装,统一管理。
export default axios
package.json的文件下的script属性内容
"scripts": {
"dev": "vite --mode dev",
"build": "vite build --mode master",
"preview": "vite preview"
},