VUE-——vue-cli 搭建的項目處理不同環境下請求不同域名的問題

使用 vue-cli 開發項目過程中, 根據開發環境和正式環境不同, 我們往往需要請求不同域名下的後臺接口, 這時候, 該怎麼去設置, 達到同一種寫法可以根據環境不同而自動切換請求域名呢? 本文將會介紹兩種配置方式。

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

一、設置多種開發環境域名

修改 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"' // 開發環境接口地址(這裏是增加的內容)
})

修改 config/prod.env.js (正式環境的配置)

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_HOST: '"http://localhost:3000"'  // 正式環境接口地址(這裏是增加的內容)
}

使用 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)
  })

原文鏈接:vue-cli 搭建的項目處理不同環境下請求不同域名的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章