91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么解決webpack-dev-server代理常切換問題

發布時間:2021-02-07 10:48:11 來源:億速云 閱讀:182 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關怎么解決webpack-dev-server代理常切換問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

背景

通常我們有一份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-dev-server代理常切換問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安平县| 杨浦区| 广水市| 启东市| 西乡县| 钟山县| 板桥市| 皮山县| 和顺县| 舟曲县| 扶风县| 尼勒克县| 白银市| 珠海市| 邛崃市| 祥云县| 青铜峡市| 桂阳县| 海丰县| 平陆县| 沾化县| 易门县| 静海县| 南京市| 湖南省| 桂林市| 盈江县| 景洪市| 凌云县| 淮滨县| 钟祥市| 东平县| 韶山市| 涟水县| 准格尔旗| 江山市| 乌鲁木齐市| 普定县| 铅山县| 辽宁省| 岳阳市|