webpack + vue 打包生成公共配置文件(域名) 方便动态修改


Posted in Javascript onAugust 29, 2019

需求原因

      原来的项目中域名是打包到项目里面的,打包后不能动态配置,只能通过不同的指令打包来切换域名,每天都在测试域名和正式域名来回摩擦,后台大佬说你们可以生成一个配置文件这样就不用频繁打包了直接修改配置文件就好,于是就有了这篇文章。

第一步 安装插件     

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

第二步 新建配置文件

在项目的根目录下新建 serverConfig.json 以后会根据这个文件去生成打包的配置文件

{"ProdUrl":http://text.com}

第三步 引入generate-asset-webpack-plugin

在build/webpack.prod.conf.js中添加

const GenerateAssetPlugin = require('generate-asset-webpack-plugin');
const serverConfig = require('../serverConfig.json');//引入根目录下的配置文件
const createJson = function() {
 return JSON.stringify(serverConfig);
};
//plugins 中使用
 plugins: [
 //打包时生成一个配置文件
 new GenerateAssetPlugin({
  filename: 'serverConfig.json',
  fn: (compilation, cb) => {
   cb(null, createJson());
  },
 }),
]

第四步 使用配置文件中的内容

这里根据不同项目不同需求代码自行变换,我分享一下我的项目里的使用,项目中封装了axios,并对请求拦截做了处理

service.interceptors.request.use(
 async (config) => {
  var baseURL = process.env.BASE_API
  if(process.env.NODE_ENV === "production"){
  await axios.get('serverConfig.json').then( e => {
   baseURL = e.data.ProdUrl
  })
  }
  config.baseURL = baseURL
  if (store.getters.token) {
  // 让每个请求携带token
  config.headers["X-Token"] = getToken();
  config.headers = {
   "X-Token": getToken(),
   "Content-Type": "application/json-patch+json"
  };
  }
  return config;
 },
 error => {
  // Do something with request error
  console.log(error); // for debug
  Promise.reject(error);
 }
 );

变黄的部分则是获取配置文件的方法,由于是使用axios获取,是异步方法,根据情况进行处理。、

好了接下来就再也不用为了域名每天build了

打包后的目录

总结

以上所述是小编给大家介绍的webpack + vue 打包生成公共配置文件(域名) 方便动态修改,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
javascript实现验证身份证号的有效性并提示
Apr 30 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
jquery实现可关闭的倒计时广告特效代码
Sep 02 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
Dec 12 Javascript
js querySelector() 使用方法
Dec 21 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
vue.js语法及常用指令
Oct 29 Javascript
Angular7创建项目、组件、服务以及服务的使用
Feb 19 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
微信小程序实现购物车代码实例详解
Aug 29 #Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 #Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 #Javascript
Angular8路由守卫原理和使用方法
Aug 29 #Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 #Javascript
vue父子组件通信的高级用法示例
Aug 29 #Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 #Javascript
You might like
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php简单的上传类分享
2016/05/15 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
vue 实现特定条件下绑定事件
2019/11/09 Javascript
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python虚拟环境venv用法详解
2020/05/25 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
特步官方商城:Xtep
2017/03/21 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
高中毕业生自我鉴定
2013/11/03 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
物控部经理职务说明书
2014/02/25 职场文书
七一讲话心得体会
2014/09/05 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
速龙x4-860k处理器相当于i几
2022/04/20 数码科技