• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

    來源:懂視網 責編:小采 時間:2020-11-27 22:02:07
    文檔

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

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

    背景

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

    現有問題

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

    假如本地開發服務器是dev.xxx.cn,docker環境是docker.xxx.cn,服務端開發人員ip是192.168.1.1

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

  • 當gulp local的時候,proxy 為 dev.xxx.cn
  • 當gulp local -t docker的時候,proxy 為 docker.xxx.cn
  • 當gulp local -t 192.168.1.1的時候,proxy 為 192.168.1.1
  • 解決方案

    創建webpack.local.js,proxy配置如下

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

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

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

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

    實現細節

    上面的配置中 {target|dev} |后面的dev是執行 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判斷內容為-t后的參數是否為ip,如果是,替換 'http://{target|dev}.xxx.cn' 為 http://192.168.1.1

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

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

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

    覺得運行開發環境打包慢可以看《webpack性能榨汁機》

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

    文檔

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

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 99久久国产综合精品麻豆| 日韩一级精品视频在线观看| 国产精品久久久久久影院| 久久亚洲精品无码播放| 亚洲国产精品线在线观看| 国产精品揄拍100视频| 老子影院午夜精品无码 | 国产精品福利片免费看| 999国内精品永久免费观看| 无码精品国产VA在线观看DVD | 国产精品多p对白交换绿帽| 无码精品人妻一区二区三区影院 | 四虎国产精品永久在线| 人妻无码精品久久亚瑟影视| 国产日韩久久久精品影院首页| 国产日韩一区在线精品欧美玲| 国产成人无码精品一区二区三区| 亚洲AV永久无码精品网站在线观看| 亚洲欧美日韩国产精品一区二区| 男女男精品视频网站在线观看| 精品午夜国产人人福利| 国产精品男男视频一区二区三区| 热久久这里只有精品| 欧美极品欧美精品欧美视频| 久久99精品久久久久久| 国产偷亚洲偷欧美偷精品| 精品国产自在在线在线观看| 国产福利91精品一区二区| 97精品一区二区视频在线观看| 国产精品看高国产精品不卡| …久久精品99久久香蕉国产| 国产2021精品视频免费播放| A级精品国产片在线观看| 91精品国产高清91久久久久久| 精品无码人妻夜人多侵犯18 | 久久久久99精品成人片牛牛影视 | 好吊妞视频精品| 久久久91精品国产一区二区三区| 999精品在线| 国产亚洲福利精品一区| 99久久精品免费看国产一区二区三区 |