常規的vue專案分為本地環境和生產環境,我們只要對config
資料夾下的dev.env.js
和prod.env.js
做相應的配置即可。但是最近在做的專案中,涉及到私有化部署,就是對應的生產環境的位址,不是唯一的。如果每次都修改乙個位址,再打包檔案進行部署,過程繁瑣且低效。那麼如何把環境位址設定成可配置的,不需要再構建**就能直接生效呢?
進行了調研後,網上介紹的方案有2種:
配置步驟
第一步:在static
資料夾中新建乙個config.json
,把你要寫的配置寫入
放在static
下的檔案,可以被直接訪問。
第二步:在main.js
中請求定義的配置檔案,並放到vue.prototype
中,使全域性可訪問,注意,這裡把new vue()
放在請求裡執行,是防止請求與頁面渲染之間的時間差異化導致值獲取不到,因此這樣比較保險。
// 定義外部介面可配置
import axios from 'axios'
axios.get('/static/config.json').then((res) => ,
})})
}
第三步:如果在.vue
檔案中使用:
console.log(this.base_url)
//
如果在一些.js
檔案中,可以呼叫vue後再使用:
import vue from 'vue'
console.log(vue.prototype.base_url)
//
打包修改
執行npm run build
可以看到打包資料夾static
資料夾下的config.json
,之後可以修改配置,重新整理頁面即可。
【補充】
因為請求和打包操作的時差性,哪怕它是請求本地的檔案,但是有時發現它的請求會比我們系統的第乙個請求慢了,這個時候就會失效。
解決方法:相信我們的專案中都對請求進行了一些封裝操作,只要將對應的baseurl的值改成實時獲取vue.prototype.base_url的值,就可以保證介面請求能夠準確獲取到了~
vue如何外接配置檔案,靈活修改介面位址
最近使用vue2,webpack3打包專案,每次打包,介面位址都會被打包進去,無法自由修改。這是乙個對前端增加工作量,對測試很不友好的操作。然後自己查了下資料,都說使用generate asset webpack plugin外掛程式,自己試著成功外接配置檔案,這裡做下記錄。首先安裝外掛程式 npm...
Vue打包後生成乙個可修改介面位址的配置檔案
先給幾個參考 vue2.0中實現打包後可配置介面位址 vue2.0中實現打包後可配置介面位址 這個是vue3.0的 vue中實現打包後可配置介面位址 感謝再來貼我自己的 普通版 第一步 在 static 靜態檔案中新建乙個 serverconfig.js 檔案,js 如下 window.global...
vue專案打包需要修改的路徑問題
vue cli專案打包需要修改的路徑問題 vue 打包生成配置檔案,方便外部修改公共路徑,不用每次都進行打包部署 vue打包後改變路徑的問題 命令列輸入 npm run build 打包出來後專案中就會多了乙個資料夾dist,這就是我們打包過後的專案。第乙個問題,檔案引用路徑。我們直接執行打包後的資...