vue cli3+配置开发环境跨域,统一api管理方法以及打包注意事项

最近新起了一个项目,基于vue cli3+ 自己搭建前端的项目框架,说一下配置开发环境跨域的方法
首先创建好项目后项目结构
可以发现没有cli2的config文件夹了
在根目录创建vue.config.js文件
vue.config.js
vue.config.js

module.exports = {
  configureWebpack: config => {
    // 取消console打印
    if (process.env.NODE_ENV === "production") {
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true;
    }
  },
  runtimeCompiler: true,
  lintOnSave: false,
  publicPath: "./", //输出的根路径  默认是/ 如果你的网站是app.com/vue 这更改此配置项
  devServer: {
    open: true,
    host: "localhost", // 设置主机地址
    port: "8080", // 设置默认端口
    overlay: {
      errors: false,
      warnings: false
    },
    proxy: {
      "/api": {
        target: process.env.VUE_APP_URL, //api服务器地址
        changeOrigin: true, //改变源
        pathRewrite: {
          //路径重写
          "^/api": "/"
        }
      }
    }
  }
};

说一下 process.env.VUE_APP_URL这个是怎么来的。
在项目的根目录创建.env文件,也就是配置文件,里面可以配置vue项目的参数
创建配置文件

在这里插入图片描述

VUE_APP_URL=http://你的域名/XXXX

可以配置多个,取名规则就是VUE_APP_XXXX
现在,基本的开发跨域配置以及完成,下面开始封装axios请求
我默认你是已经npm install axios -S的了
所以在src文件夹下面新建utils文件夹,用来存放封装的js文件
utils
里面新建request.js用来封装axios,api.js用来统一管理所有api接口,index.js用来封装一些函数
封装请求就不说了
说一下统一api管理
src/utils/api.js
在这里插入图片描述
技术有限,不会什么高级的写法,目前能想到就是这样写 “/api” 就是用来映射到接口地址的,可以支持多接口扩展

// 统一管理api 接口
let base = process.env.NODE_ENV === "development"? "/api" : process.env.VUE_APP_URL
let urlObj = {
  login: "/login", //登录接口
  sysUserInfo: "/sys/user/info", //获取用户信息
  logout:"/logout", //退出登录
}
for(let i in urlObj){
  urlObj[i] = base + urlObj[i]
}
export default urlObj

统一管理后,再到main.js导入
导入

//导入baseUrl对象
import baseUrl from "@/utils/api.js";
//挂载到Vue原型上
Vue.prototype.$baseUrl = baseUrl; 

请求的时候

this.$http.get(this.$baseUrl.sysUserInfo,{}).then((res)=>{
	//你的逻辑代码
}).catch((err)=>{})

完美解决跨域
同时也解决了开发环境和打包后api路径不一致问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值