溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue-cli 3.x配置跨域代理的實現(xiàn)方法

發(fā)布時間:2020-08-25 14:00:21 來源:腳本之家 閱讀:183 作者:時光未央 欄目:web開發(fā)

寫在前面

vue-cli 3.x 的beta版本已經(jīng)發(fā)布了一段時間,很早就像體驗一番一直找不到時間。這些日子剛好有空就想著依照網(wǎng)上的一些例子練下手,剛一上手就踩到坑了。

3.x 版本對整個項目的構(gòu)建都有很大的改動,項目的默認配置整個都轉(zhuǎn)移到CLI service里去了,從而所有的配置文件在初始化的項目中并沒有生成。初次生成項目的時候可謂是完全懵的,無論是baidu還是google,對于3.x的介紹幾乎就沒有,僅有的一些也只是項目的一些生成流程,那怎么辦,只能靠自己瞎整了。

既然沒有現(xiàn)成的(作為一個伸手黨我還是很自覺的承認了),那就只能去扒官方文檔了,慢慢啃。這可就苦了我這個英語戰(zhàn)斗力只有5的渣了,憑借著百度翻譯和谷歌翻譯,然后夾雜著自己的一些猜想,好歹是把基本的給整明白了一點點。

由于文筆實在太爛了,多余的廢話就不說了,直接上干貨。

跨域代理配置

由于3.x的默認配置都轉(zhuǎn)移到了CLI service里,所以生成的項目中并沒有配置項,我們?nèi)绻枰远x一些項目配置,則需要自己在項目的根目錄(root)創(chuàng)建一個vue.config.js。vue.config.js里的配置項所有都是可選的,這就避免了我們?nèi)タ匆淮蠖巡槐匾哪J配置,只需要配置自己需要的部分就行了?!竟俜轿臋n】

由于baseUrl也是關(guān)聯(lián)的部署目錄,我們需求的僅僅是開發(fā)環(huán)境的變量,所以盡可能的我們不動baseUrl這個變量以免部署的時候出現(xiàn)問題。所以這里配置稍作修改。

需求上是我們只需要在開發(fā)環(huán)境配置跨域代理,所以我們可以在開發(fā)環(huán)境的配置上加上能夠代理上的環(huán)境變量即可。官方提供了環(huán)境變量的配置方案。

在項目的根目錄,我們創(chuàng)建一個.env.development文件來做開發(fā)環(huán)境的變量設(shè)置。

我們在.env.development文件下設(shè)置變量VUE_APP_BASE_API=/api即可將devServer的proxy重寫的url賦值給VUE_APP_BASE_API,我們僅需在axios的封裝方案上使用VUE_APP_BASE_API這個變量,就可以對應(yīng)上devServer設(shè)置的變量。

// vue.config.js
module.exports = {
  // 修改的配置
  // 將baseUrl: '/api',改為baseUrl: '/',
  baseUrl: '/',
  devServer: {
    proxy: {
      '/api': {
        target: 'http://www.example.org',
        changeOrigin: true,
        ws: true,
        pathRewrite: {
         '^/api': ''
        }
      }
    }
  }
}
// .env.development
VUE_APP_BASE_API=/api

這里依然是采用的http-proxy-middleware來做的代理配置,一些自定義配置可以移步到官網(wǎng)去進行參考。

后記

第一次寫文檔,之前都是伸手養(yǎng)成了懶得習(xí)慣,現(xiàn)在因沒有可伸手的,就自己擼了,同時以此便利萌新以及也在踩坑的小伙伴。希望能幫到大家。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI