国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 12:18:23
字體:
來源:轉載
供稿:網友

背景

通常我們有一份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.envlet 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性能榨汁機

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江北区| 鄂托克旗| 屏东县| 天峻县| 平乡县| 晋江市| 陕西省| 崇礼县| 缙云县| 马山县| 海盐县| 长丰县| 镇安县| 汶上县| 华亭县| 郴州市| 赤峰市| 察隅县| 华蓥市| 阜宁县| 海丰县| 遂宁市| 开阳县| 神木县| 城固县| 马山县| 宁化县| 孝义市| 滨海县| 略阳县| 寿光市| 女性| 海晏县| 广安市| 鄂托克前旗| 德惠市| 铁力市| 井冈山市| 怀化市| 连城县| 峨边|