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

首頁 > 語言 > JavaScript > 正文

Vue 項目代理設置的優化

2024-05-06 15:19:57
字體:
來源:轉載
供稿:網友

Vue 類的項目開發中項目結構基本都是類似于 Vue-cli 生成的方式,這種方式開發中,最常用到的模式是開啟代理進行 mock 調試或遠程調試,也就是使用了 Vue-cli 設置的配置 proxyTable 或者直接使用 Webpack-dev-server提供的 proxy 選項。它是采用了 http-proxy 庫,所以具體配置可查看:

https://github.com/nodejitsu/node-http-proxy#options

利用配置的這些參數我們可以做更為靈活的配置,達到更好的效果

使用需求

假設我們本地開發目前以下幾種狀態:

本地開發,數據使用本地的 mock Server 涉及權限接口使用本地 mock 數據,其他全部使用指定的一臺遠程機器 涉及權限接口使用本地 mock 數據,其他數據分接口使用不同的遠程機器 所有接口使用同一臺遠程機器

方案

先看下經典的proxyTable 寫法:

proxyTable: { '/authui/': {  target: target,  changeOrigin: true }, '/vendor/': {  target: target,  changeOrigin: true }}

其中用到了 changeOrigin 字段,主要是用于改變請求的 header。細化下需求:

本地開發:target 指向 localhost 的某個端口即可。至于 host 的驗證肯定是不需要的 部分本地,其他固定的一臺遠程機器:需要配置 localhost 和遠程的地址,遠程地址多半是需要驗證 host 的 同二,但機器有多臺:需要手動配置多臺機器 同一臺遠程機器,此時機器可能要嚴格驗證,即 IP 也必須使用域名,配置好系統 host 才可使用

說明:嚴格驗證 host 和普通驗證 host 區別主要在于嚴格驗證時,請求的 url 必須是遠程機器的域名,
不能直接修改請求的 header 的 host 實現,即必須在系統 host 層面配置好域名。

分析完成具體需求好,就開始準備實現的方式。原有開發方式是執行 npm run dev,如果我們需要在命令行層面添加配置,就需要設置為 npm run dev --param=paramvalue 的方式。對于使用 npm 的 script 腳本執行的命令,
它參數的獲取無法通過 process.env 獲得,而且通過 process.env.npm_config_paramName 的方式獲取,
使用現成的命令行參數解析庫也不是很方便,但為了省事,暫時還是使用 npm 自帶的解析。

請求發起過程中需要以下幾個參數:

host: 發起請求需要指向的 host,可能每臺機器驗證并不相同 port: 代理轉發的端口 receiver: 用于 push 的遠程地址,內包含了 ip 地址,為了省事,沒有單獨列出 ip 地址

然后定義代理請求自定義類型,用于配置:

local: 本地地址,即 localhost remote: 指定的遠程機器 其他自定義類型:用于在配置文件中已經指定的其他類型 原版本的請求,如 'http://xxx' 或者 Object 類型的配置,此類代理永不處理
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 封开县| 华池县| 邵武市| 电白县| 建德市| 赤城县| 栾川县| 施甸县| 凤翔县| 科技| 南木林县| 大丰市| 西乌珠穆沁旗| 甘孜县| 兴化市| 甘孜| 天全县| 金门县| 景洪市| 平山县| 类乌齐县| 宁安市| 双柏县| 咸阳市| 宜君县| 庆阳市| 偏关县| 石河子市| 延吉市| 清流县| 中西区| 铜川市| 秦安县| 喜德县| 开鲁县| 遂平县| 延长县| 石棉县| 邹平县| 沙坪坝区| 新和县|