項目是基於vue-cli搭建,項目分爲開發環境,測試環境,預生產環境,生產環境,其中開發環境和測試環境調用同一個接口,開發環境調用服務器端的測試接口會跨域,以上需求就引起了一些問題,html
問題一:
測試環境(包括開發環境,而且開發環境跨域),預生產環境,生產環境,有着不一樣的接口地址,也就是不一樣的開發環境要調用不一樣的接口地址,有的時候不一樣的開發環境還要調用不一樣的全局變量。vue
問題二:
本地開發環境跨域,本地開發環境調用服務器端接口地址,會跨域,可是代碼打包上傳到服務器,不會跨域
以前的解決方案(沒有依賴webpack):
開發環境下,在static下新建一個config文件夾,再新建一個config.js,這是開發版的config,裏面包含了開發和測試的接口地址和全局變量,並在index.html中手動引入(static中的文件不被webpack管理)以下webpack
<script src="/static/config/config.js"></script>
將config文件夾上傳到測試服務器,開發環境打包後,將index.html中的config.js的路徑更改成服務器端的config.js,以下git
<script src="./config/config.js"></script>
同理,預生產環境,生產環境,和測試環境同樣,分別配置不一樣的config文件,也就是接口地址和全局變量,打包後更改壓縮後的index.html
github
這樣配置帶來了不少問題和不便,要配置不一樣的config接口道不一樣的服務器,打包後須要手動修改config路徑,可是也有一個好處,打包一次,三個環境能夠共用,由於config接口在服務器端
以上是開發過程當中,遇到的問題,
後來瞭解了一下webpack,發現vue-cli中有解決方案,研究一下並作了一下修改,腳手架地址web
根據不一樣的環境調用不一樣的接口vue-cli