最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue/cli?配置動(dòng)態(tài)代理無(wú)需重啟服務(wù)的操作方法

 更新時(shí)間:2022年05月20日 15:24:36   作者:野豬佩奇丶丶  
vue-cli是vue.js的腳手架,用于自動(dòng)生成vue.js+webpack的項(xiàng)目模板,分為vue?init?webpack-simple?項(xiàng)目名和vue?init?webpack?項(xiàng)目名兩種,這篇文章主要介紹了vue/cli?配置動(dòng)態(tài)代理,無(wú)需重啟服務(wù),需要的朋友可以參考下

vue腳手架指的是vue-cli,它是一個(gè)專門為單頁(yè)面應(yīng)用快速搭建繁雜的腳手架,它可以輕松的創(chuàng)建新的應(yīng)用程序而且可用于自動(dòng)生成vue和webpack的項(xiàng)目模板。

vue/cli 配置動(dòng)態(tài)代理,無(wú)需重啟服務(wù)

devServe = http://localhost:3000;
prodServe = http://localhost:4000;

1. 在vue.config.js文件中,配置代理服務(wù)

使用vue/cli@5創(chuàng)建的項(xiàng)目,默認(rèn)會(huì)創(chuàng)建vue.config.js文件,如果項(xiàng)目中沒有此文件,那么就手動(dòng)在項(xiàng)目根路徑創(chuàng)建vue.config.js文件。

const { defineConfig } = require('@vue/cli-service');
const createProxy = require('./dynamic_proxy');

module.exports = defineConfig({
    transpileDependencies: true,
    devServer: {
        proxy: {
            '/': {
                target: '',
                ws: false,
                changeOrigin: true,
                router: () => {
                    return createProxy();
                }
            }
        }
    }
});

2. 在項(xiàng)目根路徑創(chuàng)建文件夾dynamic_proxy,并創(chuàng)建proxy.list.json文件以及index.js文件。

proxy.list.json

[
    {
        "name": "devServe",
        "ip": "http://xxx.xxx.xxx.xxx:3001",
        "active": true
    },
    {
        "name": "prodServe",
        "ip": "http://xxx.xxx.xxx.xxx:3000",
        "active": false
    }
]

index.js

const { readFileSync } = require('fs');
const { resolve } = require('path');
const getProxyList = () => {
    try {
        const proxyList = readFileSync(resolve(__dirname, './proxy.list.json'), 'utf-8');
        return JSON.parse(proxyList);
    } catch (error) {
        throw new Error(error);
    }
};
const getActiveProxy = () => {
    try {
        const proxyList = getProxyList();
        if (proxyList.some(i => i.active)) {
            return proxyList.find(i => i.active);
        }
    } catch (error) {
        throw new Error(error);
    }
};
module.exports = () => {
    return getActiveProxy().ip;
};

3. 運(yùn)行命令

npm run serve

4. 需要切換服務(wù)時(shí),直接修改proxy.list.json中的active選項(xiàng),修改為true,就可以自動(dòng)切換了

5. 原理解析

vue cli 的代理是使用的http-proxy-middleware包,所以proxy選項(xiàng)的配置也是基于這個(gè)包的配置。在proxy配置選項(xiàng)中有兩個(gè)屬性target以及router。其中target是默認(rèn)的代理地址。而router可以return一個(gè)字符串服務(wù)地址,那么當(dāng)兩個(gè)選項(xiàng)都配置了時(shí),http-proxy-middleware在解析配置時(shí),會(huì)首先使用router函數(shù)的返回值,當(dāng)router的返回值不可以用時(shí),那么就會(huì)fallback至target。

http-proxy-middleware router配置源碼

配置校驗(yàn)源碼

可以由上面源碼看出首先會(huì)校驗(yàn)配置,如果targetrouter都不存在的話,就會(huì)直接Error,從第一張圖片源碼可以看出,如果router存在的話,則會(huì)直接新建一個(gè)newTarget,并且將options.target賦值為newTarget;

到此這篇關(guān)于vue/cli 配置動(dòng)態(tài)代理,無(wú)需重啟服務(wù)的文章就介紹到這了,更多相關(guān)vue cli 配置動(dòng)態(tài)代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))

    vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))

    這篇文章主要介紹了vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue cli3.x打包后如何修改生成的靜態(tài)資源的目錄和路徑

    vue cli3.x打包后如何修改生成的靜態(tài)資源的目錄和路徑

    這篇文章主要介紹了vue cli3.x打包后如何修改生成的靜態(tài)資源的目錄和路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 詳解vue 自定義marquee無(wú)縫滾動(dòng)組件

    詳解vue 自定義marquee無(wú)縫滾動(dòng)組件

    這篇文章主要介紹了vue自定義marquee無(wú)縫滾動(dòng)組件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue項(xiàng)目中npm?install卡住問(wèn)題解決的詳細(xì)指南

    Vue項(xiàng)目中npm?install卡住問(wèn)題解決的詳細(xì)指南

    這篇文章主要介紹了Vue項(xiàng)目中npm?install卡住問(wèn)題解決的相關(guān)資料,文中包括更換npm鏡像源、清除npm緩存、刪除.npmrc文件和升級(jí)Node.js版本,需要的朋友可以參考下
    2024-12-12
  • vue全局自定義指令-元素拖拽的實(shí)現(xiàn)代碼

    vue全局自定義指令-元素拖拽的實(shí)現(xiàn)代碼

    這篇文章主要介紹了面板拖拽之vue自定義指令,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • vue3封裝放大鏡組件的實(shí)例代碼

    vue3封裝放大鏡組件的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于vue3封裝放大鏡組件的相關(guān)資料,封裝之后,使用起來(lái)就更簡(jiǎn)單了,一個(gè)組件一行就可以,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • vue3中批量全局注冊(cè)組件實(shí)例詳解

    vue3中批量全局注冊(cè)組件實(shí)例詳解

    在vue中,我們?cè)趍ain.ts引入的全局注冊(cè)的組件是可以不需要import導(dǎo)入而直接使用的,使用的時(shí)候是自己全局注冊(cè)組件時(shí)的名稱,而不是組件名,這篇文章主要介紹了vue3中批量全局注冊(cè)組件,需要的朋友可以參考下
    2023-05-05
  • vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn)

    vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn)

    這篇文章主要介紹了vue移動(dòng)端使用canvas簽名的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • vue工程如何為組件自動(dòng)注入全局樣式文件

    vue工程如何為組件自動(dòng)注入全局樣式文件

    這篇文章主要介紹了vue工程如何為組件自動(dòng)注入全局樣式文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題)

    Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題)

    本文主要介紹了Vue3封裝自動(dòng)滾動(dòng)列表指令(含網(wǎng)頁(yè)縮放滾動(dòng)問(wèn)題),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

华阴市| 尖扎县| 鹰潭市| 定安县| 宝丰县| 板桥市| 凭祥市| 巴林右旗| 黄平县| 尼勒克县| 东港市| 额济纳旗| 庄浪县| 永德县| 红原县| 临洮县| 电白县| 陕西省| 承德市| 岚皋县| 当雄县| 磐安县| 高雄县| 湘西| 丹寨县| 茌平县| 东乌| 巴青县| 胶南市| 台东市| 安龙县| 库伦旗| 德庆县| 新和县| 太谷县| 定边县| 和平区| 上栗县| 平乐县| 南陵县| 衡阳县|