vue+webpack实现vue打包后生成配置文件用以外部修改公共路径

1、问题初衷

解决问题的初衷,源于vue项目中公共路径在打包之后一旦遇到整体的路径更改就需要再次build一下。 如果公司小,项目部署的实施人员又能随时联系到开发人员。直接简单的build一下就OK了。又或者开发人员自己直接就解决一下也行。但是公司一旦大,这期间的沟通,联络等等,顺利的话还行,不顺利呢。也不能让实施人员干等着。 要是实施人员不用等开发人员用源码重新build的话,直接有一个外部的文件,直接修改。就能解决这期间的问题的话。那将大大的提高效率。

2、解决方案

第一步:安装generate-asset-webpack-plugin插件

npm install --save-dev generate-asset-webpack-plugin

第二步:在根目录下添加serverConfig.json的配置文件

serverConfig.json

serverConfig.json

(注:哪些公共的觉得有必要的都可以用jsonde 形式写在里面)
第三步:在build/webpack.prod.conf.js文件里引入generate-asset-webpack-plugin

const GeneraterAssetPlugin = require('generate-asset-webpack-plugin')

第四步:引入添加的serverConfig.json文件

const serverConfig = require('../serverConfig.json')

第五步:添加打包时写入配置文件的代码

const createJson = function(compilation) {
      return JSON.stringify(serverConfig);
};

第六步:添加打包时输出配置文件的代码

  new GeneraterAssetPlugin({
      filename: 'serverConfig.json',//输出到dist根目录下的serverConfig.json文件,名字可以按需改
      fn: (compilation, cb) => {
      cb(null, createJson(compilation));
   }
})

第七步:在main.js中添加读取build之后的代码

Vue.prototype.getConfigJson = function () {
  Vue.prototype.$axios.get('serverConfig.json').then((result)=>{
    console.log(result);
    Vue.prototype.baseUrl =result.data.baseUrl;//设置成Vue的全局属性
    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>'
    })
  }).catch((error)=>{
    console.log(error)
  })
}
Vue.prototype.getConfigJson()//调用声明的全局方法

第八步:项目中引用

this.baseUrl+'/123'

注:

npm  run  build

项目生成的结构:


生成的dist文件结构

其中生成的serverConfig.json


serverConfig.json

这里面的地址就可以随意更改了,不再需要再次build

最后希望这篇文章能够帮助你解决一些问题。也不枉费自己在坑里面替大家铺路O(∩_∩)O哈哈~,记得关注+喜欢

更新

很多人搜到的还是这片文章,所以整理了一下:https://www.jianshu.com/p/c085677ae70b 里面包含脚手架cli2.x 和cli3.x

1、如果对你有帮助的话,记得给个赞赏加关注,鼓励一下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,354评论 7 110
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 11,598评论 2 71
  • 原文首发于:Webpack 3,从入门到放弃 Update (2017.8.27) : 关于 output.pub...
    昵称都被用完了衰阅读 5,918评论 4 19
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 10,885评论 1 32

友情链接更多精彩内容