需求:
在打包成功之后在dist中會生成一個配置文件,配置文件中包含要請求的地址,通過直接修改配置文件中的地址即可成功修改請求地址,不需要再重新打包。
方便在不同環境下運維修改地址之后可以直接部署,避免重復打包的工作。與本地代碼地址不沖突。
實現代碼:
1.public文件夾下新建一個config.js文件,與index.html同級:
const Glod = { // baseURL: 'https://ltnapii.cloudcc.com/api', // baseURLNoApi: 'https://ltnapii.cloudcc.com/', baseURL: 'https://ccapi-gwi.cloudcc.com/api', baseURLNoApi: 'https://ccapi-gwi.cloudcc.com/', } exports = Glod
2.index.html中引入該js文件:
index.html為項目的根文件,即入口文件。
<script type="text/javascript" src="./config.js"></script>
3.vue.config.js中require該js文件:
const Glod = require('./public/config') // 配置文件 target: Glod.baseURL, //服務器
4.main.js中全局定義:
Vue.prototype.$baseConfig = Glod;
5.其他js、vue文件中使用:
baseURL: Glod.baseURLNoApi, this.$baseConfig.baseURL;
此時,代碼就寫完了,在打包成功之后dist文件夾下會生成創建的config.js文件,但該文件與public下的config.js不是同一個文件,在修改dist下的配置文件時,並不會修改public下的配置文件,但是請求地址會改變。因為app.js文件里的地址是用的定義的Glod常量,並不是寫死的地址。
測試:
測試修改dist中配置文件地址時是否生效:
1.安裝http-server或者anywhere 搭建web服務器環境(建議使用anywhere)
npm install anywhere -g
2.在dist打開命令行輸入anywhere,瀏覽器會自己打開,那么你打包好的項目就相當於在服務器上運行了,這時你再修改config.js里面的地址,刷新網頁,可通過查看接口訪問地址是否更改為自己設置的地址,此時可驗證代碼是否配置成功。
注意:
1.在public下的配置文件中定義了一個常量Glod,在引入index.html中后成為全局常量,除了vue.config.js中不能訪問到,其他文件中均可以訪問。之所以在main.js中又定義了一個全局變量baseConfig是為了保持統一,在.vue文件中需要使用地址時直接通過this.$baseConfig來訪問。
2.我用的是vue-cli4.4.6,不同版本的腳手架創建config.js文件的位置不同,可自行百度,但設置方式基本相同。
3.參考鏈接:
https://blog.csdn.net/qq_39241544/article/details/106791093
https://blog.csdn.net/qq_41772754/article/details/88106508
https://www.cnblogs.com/xiaolucky/p/12929720.html