1. 程式人生 > >vue打包之後生成一個配置文件修改接口

vue打包之後生成一個配置文件修改接口

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打包之後生成一個配置文件修改接口