vue项目代理配置、绝对路径配置、以及request请求封装

495 阅读1分钟

vue项目代理配置

根目录新建vue.config.js文件 添加如下内容

//绝对路径配置
const path = require('path');//引入path模块
function resolve(dir){
    return path.join(__dirname,dir)//path.join(__dirname)设置绝对路径
}
module.exports = {
	//代理
	devServer: {
      open: true,
      proxy: {
        '/api': {
          target: 'http://192.168.1.235:8787',
          changeOrigin: true,
          pathRewrite: {
            '^/api': ''
          }
        }
      }
  },
  //配置绝对路径
  chainWebpack:(config)=>{
    config.resolve.alias
    //set第一个参数:设置的别名,第二个参数:设置的路径
    .set('@',resolve('./src'))
    .set('@components',resolve('./src/components'))
  }
}

vue项目request封装

src下新建utils文件夹/request.js文件 添加如下内容

import axios from 'axios'//npm install axios --save
import NProgress from 'nprogress'//npm install --save nprogress
import 'nprogress/nprogress.css'

const request = axios.create({
  timeout: 20000,
})
//请求拦截器
request.interceptors.request.use(config => {
  //store.getters.token && config.headers['token'] = getToken()//token
  NProgress.start()
  return config
})
//响应拦截器
request.interceptors.response.use(response => {
  NProgress.done()
  return Promise.resolve(response.data)
}, error => {
  NProgress.done()
  return new Promise(() => { })
})
export default request