vue-cli 搭建的项目处理不同环境下请求不同域名的问题

使用 vue-cli 开发项目过程中, 根据开发环境和正式环境不同, 我们往往需要请求不同域名下的后台接口, 这时候, 该怎么去设置, 达到同一种写法可以根据环境不同而自动切换请求域名呢? 本文将会介绍两种配置方式.

本文中所有请求都是使用 axios

  1. 修改 config/dev.env.js (开发环境的配置)
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_HOST: '"http://localhost:3000"' // 开发环境接口地址(这里是增加的内容)
})
  1. 修改 config/prod.env.js (正式环境的配置)
'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_HOST: '"http://localhost:8888"'  // 正式环境接口地址(这里是增加的内容)
}
  1. 使用 axios 发送请求
axios.get(process.env.API_HOST + '/api/userData') // 请求前加上 `process.env.API_HOST`
  .then(data => {
    console.log(data)
  })

第二种方法主要使用 axios 的创建实例的用法

main.js 配置 axios

import axios from 'axios'

const host = process.env.NODE_ENV === 'development' ? 'dev api host' : 'prod api host' // 根据 process.env.NODE_ENV 的值判断当前是什么环境
const instance = axios.create({
  baseURL: host
})
Vue.prototype.$http = instance

在组件中调用

this.$http.get('/api/userData')
  .then(data => {
    console.log(data)
  })
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 原文http://www.cnblogs.com/libin-1/p/6596810.html 版本号 vue-c...
    tengrl阅读 3,699评论 0 0
  • 平常我们团队开发时,都在公司的局域网内,调用接口也是局域网内部的,但是项目上线时,请求接口是线上服务器端的,那么就...
    Sune小叶子阅读 35,976评论 0 8
  • 本学期初次组织生活会以树立新目标,开启新征程为主题,完美契合了当下时机。通过本次会议的学习,在了解了"十三五"规划...
    Hallelujahlym阅读 210评论 0 0
  • 1、 门口有人咣咣砸门,带着叫骂声。 “猪尾巴,你个王八蛋,你给我出来!” 我叫朱伟,伟大的伟,不是尾巴的尾。 这...
    夜二郎阅读 2,156评论 144 146