vue打包之後生成一個配置文件修改接口
阿新 • • 發佈:2017-11-17
on() back 保存 分享 pro sessions onf proto all
前言:
我們的vue代碼打包上傳到服務器之後,
要是數據接口 以後換了域名什麽的,是不是需要重新去vue文件裏修改接口。
能不能生成一個配置文件,裏面可以配置域名或其它什麽字段之類的,這樣以後換了域名,只需打開記事本 修改一下域名即可。
教程:
第一步:安裝generate-asset-webpack-plugin插件
npm install --save-dev generate-asset-webpack-plugin
第二步:配置webpack.prod.conf.js文件
//讓打包的時候輸出可配置的文件 var GenerateAssetPlugin = require(‘generate-asset-webpack-plugin‘);var createServerConfig = function(compilation){ let cfgJson={ApiUrl:"http://198.129.31.108:8080"}; return JSON.stringify(cfgJson); }
//讓打包的時候輸入可配置的文件 //這段代碼加在plugins:[]中 new GenerateAssetPlugin({ filename: ‘serverconfig.json‘, fn: (compilation, cb) => { cb(null, createServerConfig(compilation)); }, extraFiles: [] })
第三步:輸入npm run build打包代碼 結果如下
第四步:以後需要修改域名之類的 在serverconfig.json修改即可
第五步:獲取ApiUrl
//在main.js中定義一個全局函數 Vue.prototype.getConfigJson=function(){ this.$http.get("serverconfig.json").then((result)=>{ //用一個全局字段保存ApiUrl 也可以用sessionStorage存儲 Vue.prototype.ApiUrl=result.body.ApiUrl; }).catch((error)=>{console.log(error)}); }
第六步:使用ApiUrl
//在app.vue裏面 執行this.getConfigJson(); mounted:function(){ this.getConfigJson(); }
//之後...用在需要用到的地方 因為ApiUrl已經是全局了 可以直接用this.ApiUrl var url=this.ApiUrl+‘/api/....
vue打包之後生成一個配置文件修改接口