亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue配置文件實(shí)現(xiàn)代理v2版本的方法

 更新時(shí)間:2019年06月21日 09:52:03   作者:驀然回首  
這篇文章主要介紹了vue配置文件實(shí)現(xiàn)代理v2版本的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

vue實(shí)現(xiàn)不同服務(wù)器代理,接上篇,雖然可實(shí)現(xiàn)多版本代理,但是每增加一種模式就需要重下新修改vue.config.js以及.env.dev.local,感覺(jué)很不智能,擴(kuò)展性挺差。

主要實(shí)現(xiàn)思路:

 模仿vue中.env.local文件,此文件被git忽略,且可根據(jù)當(dāng)前環(huán)境變量加載不同的數(shù)據(jù),由此在項(xiàng)目根目錄下新建development文件夾,在development文件加下建立config文件夾,用戶(hù)放置配置文件,config下目前暫有兩個(gè)文件 config.development.local config.owndev.local

在.gitignore中添加

development/config/config.local

development/config/config.*.local

忽略所有的配置local文件,然后通過(guò)node讀取文件加載配置的json文件,并將代理規(guī)則通過(guò)代碼完善,導(dǎo)出代理規(guī)則,最終輸出的vue.config.js中實(shí)現(xiàn)代理,通過(guò)cross-env模塊改變系統(tǒng)變量設(shè)置,最終實(shí)現(xiàn)不同環(huán)境下不同文件的加載

現(xiàn)新建項(xiàng)目,目錄結(jié)構(gòu)如下:

其中development為新添加目錄,其中主要放置需要代理的文件

config下

.gitignore 添加對(duì)文件的忽略

development/config/config.local
development/config/config.*.local
development/config 下的config.development.dev
{
  "/api":"http://serverurl"
 }
development/config 下的config.owndev.dev

{
  "/api/login":"http://localhost:8080",
  "/api/register":"http://localhost:8081"
}

proxy.js實(shí)現(xiàn)主要的代理邏輯,思路如下,根據(jù)cross-env設(shè)置的環(huán)境變量加載不同的json文件

cross-env 用法,在package.json devDependencies中添加 ,然后npm i --save-dev cross-env即可

"devDependencies": {
 "cross-env": "^5.2.0"
 }

用法 在啟動(dòng)vue服務(wù)前添加 cross-env BUILD_ENV=development 即可

如下

"script":{
  "serve": "cross-env BUILD_ENV=development vue-cli-service serve",
  "owndev": "cross-env BUILD_ENV=owndev vue-cli-service serve",
}

當(dāng)執(zhí)行npm run serve 時(shí) process.env.BUILD_ENV 值為development,當(dāng)執(zhí)行 npm run owndev時(shí),process.env.BUILD_ENV的值為 owndev

proxy.js實(shí)現(xiàn)的主邏輯如下:

var path = require('path'); //系統(tǒng)路徑模塊
var fs = require('fs'); //文件模塊
const defaultProxy = {
 "/api":"http://serverUrl"
};
//根據(jù)當(dāng)前的運(yùn)行環(huán)境判斷走哪個(gè)配置
const DEVELOPMENT = "development"
let currentEnv = process.env.BUILD_ENV?process.env.BUILD_ENV:DEVELOPMENT
let configPath = `config/config.${currentEnv}.local`
let filePath = path.join(__dirname, configPath); //文件路徑,__dirname為當(dāng)前運(yùn)行js文件的目錄
let proxyContent = null;
//讀取json文件,異步
/*fs.readFile(filePath, 'utf-8', function(err, data) {
 if (!err) {
  proxyContent = data;
 } 
});*/
//將json字符串轉(zhuǎn)化為json對(duì)象
try{
proxyContent = JSON.parse(fs.readFileSync(filePath,'utf-8'))
}catch(e){
proxyContent = defaultProxy
}
if(proxyContent == null){
 proxyContent = defaultProxy
}
let proxys = {}
//遍歷所有的配置代理,對(duì)應(yīng)不同的服務(wù)器
Object.getOwnPropertyNames(proxyContent).forEach(function (key) {
 let targetPath = proxyContent[key]
 let proxyItem = {};
 proxyItem.target = targetPath;
 proxyItem.ws = true;
 proxyItem.changeOrigin = true;
 proxyItem.pathRewrite = {}
 proxyItem.pathRewrite[`^${key}`] = '/'
 proxys[key] = proxyItem
});
module.exports = proxys

在vue.config.js中引用該文件

let proxy = require('./development/proxy/proxy')
let config = {
 publicPath:"/" ,
 devServer: {
  port: 8080,
  proxy:proxy
 }
}
module.exports = config

以上,完成。使用時(shí)只需更改 development/config/config.owndev.local文件即可,即使增加了代理也可只增加配置文件完成代理。

總結(jié)

以上所述是小編給大家介紹的vue配置文件實(shí)現(xiàn)代理v2版本的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • vue3中的setup使用和原理解析

    vue3中的setup使用和原理解析

    這篇文章主要介紹了vue3的setup的使用和原理解析,通過(guò)本文我們學(xué)習(xí)了?setup?函數(shù)執(zhí)行的過(guò)程及?Vue?是如何處理捕獲?setup?的返回結(jié)果的,需要的朋友可以參考下
    2022-09-09
  • Vue3中樣式滲透:deep()無(wú)效的原因分析

    Vue3中樣式滲透:deep()無(wú)效的原因分析

    今天學(xué)習(xí) /deep/ 樣式穿透,因?yàn)関ue3中已經(jīng)使用:deep()取代了/deep/ ,所以直接用:deep()練習(xí),這篇文章主要介紹了Vue3中樣式滲透:deep()為什么無(wú)效,需要的朋友可以參考下
    2022-11-11
  • vue element 中的table動(dòng)態(tài)渲染實(shí)現(xiàn)(動(dòng)態(tài)表頭)

    vue element 中的table動(dòng)態(tài)渲染實(shí)現(xiàn)(動(dòng)態(tài)表頭)

    這篇文章主要介紹了vue element 中的table動(dòng)態(tài)渲染實(shí)現(xiàn)(動(dòng)態(tài)表頭),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue在原窗口與新窗口打開(kāi)外部鏈接的實(shí)現(xiàn)代碼

    Vue在原窗口與新窗口打開(kāi)外部鏈接的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Vue如何在原窗口與新窗口打開(kāi)外部鏈接,文中給大家提到了vue跳轉(zhuǎn)外部鏈接的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 關(guān)于vue組件的更新機(jī)制?resize()?callResize()

    關(guān)于vue組件的更新機(jī)制?resize()?callResize()

    這篇文章主要介紹了關(guān)于vue組件的更新機(jī)制?resize()?callResize(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • electron+vue?實(shí)現(xiàn)靜默打印功能

    electron+vue?實(shí)現(xiàn)靜默打印功能

    這篇文章主要介紹了electron+vue?實(shí)現(xiàn)靜默打印功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • vue視頻播放暫停代碼

    vue視頻播放暫停代碼

    今天小編就為大家分享一篇vue視頻播放暫停代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue實(shí)現(xiàn)Base64轉(zhuǎn)png、jpg圖片格式

    Vue實(shí)現(xiàn)Base64轉(zhuǎn)png、jpg圖片格式

    這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)Base64轉(zhuǎn)png、jpg圖片格式的相關(guān)資料,前段獲取生成的是base64圖片,需要轉(zhuǎn)化為jpg,png,需要的朋友可以參考下
    2023-09-09
  • vue組件發(fā)布到npm簡(jiǎn)單步驟

    vue組件發(fā)布到npm簡(jiǎn)單步驟

    給大家講解一下vue組件發(fā)布到npm簡(jiǎn)單方法和步驟過(guò)程,需要的朋友一起學(xué)習(xí)參考一下。
    2017-11-11
  • vue實(shí)現(xiàn)可改變購(gòu)物數(shù)量的購(gòu)物車(chē)

    vue實(shí)現(xiàn)可改變購(gòu)物數(shù)量的購(gòu)物車(chē)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)可改變購(gòu)物數(shù)量的購(gòu)物車(chē),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論