<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        如何解決webpack-dev-server代理常切換問題

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:02:07
        文檔

        如何解決webpack-dev-server代理常切換問題

        如何解決webpack-dev-server代理常切換問題:背景 通常我們有一份webpack.dev.config.js使用webpack-dev-server的proxy,代理到開發(fā)服務(wù)器,來解決本地跨域問題。假如項目變大,可能需要proxy到不同環(huán)境,比如docker,或者后端開發(fā)人員的電腦上 現(xiàn)有問題 需要手動更改proxy配置,比較麻煩還容
        推薦度:
        導(dǎo)讀如何解決webpack-dev-server代理常切換問題:背景 通常我們有一份webpack.dev.config.js使用webpack-dev-server的proxy,代理到開發(fā)服務(wù)器,來解決本地跨域問題。假如項目變大,可能需要proxy到不同環(huán)境,比如docker,或者后端開發(fā)人員的電腦上 現(xiàn)有問題 需要手動更改proxy配置,比較麻煩還容

        背景

        通常我們有一份webpack.dev.config.js使用webpack-dev-server的proxy,代理到開發(fā)服務(wù)器,來解決本地跨域問題。假如項目變大,可能需要proxy到不同環(huán)境,比如docker,或者后端開發(fā)人員的電腦上

        現(xiàn)有問題

      1. 需要手動更改proxy配置,比較麻煩還容易寫錯
      2. 改變后的config文件會被git檢測到
      3. 不小心將本地修改的配置push到遠程倉庫,對其他人造成困擾
      4. 需求

        假如本地開發(fā)服務(wù)器是dev.xxx.cn,docker環(huán)境是docker.xxx.cn,服務(wù)端開發(fā)人員ip是192.168.1.1

        因為我本地用了gulp,啟動前端開發(fā)環(huán)境到命令是 gulp local (與 npm run xx 的效果差不多),那么我希望

      5. 當(dāng)gulp local的時候,proxy 為 dev.xxx.cn
      6. 當(dāng)gulp local -t docker的時候,proxy 為 docker.xxx.cn
      7. 當(dāng)gulp local -t 192.168.1.1的時候,proxy 為 192.168.1.1
      8. 解決方案

        創(chuàng)建webpack.local.js,proxy配置如下

        proxy: {
         '/api/**': {
         target: 'http://{target|dev}.xxx.cn',
         changeOrigin: true,
         },
        }

        在我們運行 gulp local 時,讀取local.config文件,替換{target|dev}為 -t 后的內(nèi)容,比如 gulp local -t docker ,替換后變?yōu)?'http://docker.xxx.cn'

        再將替換后的文件內(nèi)容輸出到一個名為webpack.local.target.js的文件里,然后執(zhí)行 webpack-dev-server -c webpack.local.target.js

        最后修改.gitignore文件,加入webpack.loc.target.js,這樣每次生成的文件就不會被誤push到遠程

        實現(xiàn)細節(jié)

        上面的配置中 {target|dev} |后面的dev是執(zhí)行 gulp local 時的默認選項

        const { t } = gulputil.env
        let config = fs.readFileSync(_path.join(__dirname, '/webpack.loc.js')).toString()
        
        if (/\d{1,3}(\.\d{1,3}){3}/.test(t)) {
         config = config.replace(/\\{target[^}]+\\}[^']*/g, t)
        } else if (typeof t === 'string' && t.length > 0) {
         config = config.replace(/\\{target[^}]+\\}/g, t)
        } else {
         config = config.replace(/\\{target\\|([^}]+)\\}/g, '$1')
        }
        fs.writeFileSync(_path.join(__dirname, '/webpack.loc.target.js'), config)
        

        第一個if判斷內(nèi)容為-t后的參數(shù)是否為ip,如果是,替換 'http://{target|dev}.xxx.cn' 為 http://192.168.1.1

        第二個判斷是否有參數(shù),如果有,替換為 http://docker.xxx.cn

        第三個判斷就是直接運行 gulp local 不加 -t 時,替換為 http://dev.xxx.cn

        正則不太懂可以看我另一篇文章《正則速記法》

        覺得運行開發(fā)環(huán)境打包慢可以看《webpack性能榨汁機》

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何解決webpack-dev-server代理常切換問題

        如何解決webpack-dev-server代理常切換問題:背景 通常我們有一份webpack.dev.config.js使用webpack-dev-server的proxy,代理到開發(fā)服務(wù)器,來解決本地跨域問題。假如項目變大,可能需要proxy到不同環(huán)境,比如docker,或者后端開發(fā)人員的電腦上 現(xiàn)有問題 需要手動更改proxy配置,比較麻煩還容
        推薦度:
        標(biāo)簽: 代理 解決 如何解
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费欧洲美女牲交视频| 999在线视频精品免费播放观看| 午夜小视频免费观看| 狠狠色香婷婷久久亚洲精品| 色老头永久免费网站| 亚洲妇女水蜜桃av网网站| 国产卡二卡三卡四卡免费网址| 亚洲伊人久久大香线蕉在观| 在线看片免费不卡人成视频| 亚洲国产精品自在自线观看| 国产成人免费手机在线观看视频 | 自拍日韩亚洲一区在线| 57PAO成人国产永久免费视频 | 拔擦拔擦8x华人免费久久| 久久久久久亚洲精品无码| av无码东京热亚洲男人的天堂| 在线播放国产不卡免费视频| 亚洲一区二区三区香蕉| 在线免费中文字幕| 亚洲精品无码久久久久久| MM131亚洲国产美女久久| 久久久久国产精品免费免费不卡| 久久精品国产亚洲AV嫖农村妇女 | 国产精品亚洲精品观看不卡| 永久免费av无码网站大全| 四虎国产精品永免费| 亚洲国产天堂在线观看| 91在线品视觉盛宴免费| 添bbb免费观看高清视频| 亚洲av午夜福利精品一区| 成人女人A级毛片免费软件| 西西人体大胆免费视频| 亚洲人成网站在线播放影院在线| 国产精品久久久久免费a∨| 九九久久国产精品免费热6 | 无人在线直播免费观看| 美女羞羞喷液视频免费| 久久av无码专区亚洲av桃花岛| 女人张开腿给人桶免费视频| 国产在线精品一区免费香蕉 | 亚洲免费日韩无码系列|