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 相关文章推荐
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
JQuery 常用方法和事件详细介绍
Apr 18 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
Vue filter介绍及其使用详解
Oct 21 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
微信小程序登录session的使用
Mar 17 Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 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
php PDO中文乱码解决办法
2009/07/20 PHP
PHP函数常用用法小结
2010/02/08 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
两款万能的php分页类
2015/11/12 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
上班睡觉检讨书
2014/01/09 职场文书
服务生自我鉴定
2014/01/22 职场文书
广告业务员岗位职责
2014/02/06 职场文书
爱国主义演讲稿
2014/05/07 职场文书
思想政治表现评语
2015/01/04 职场文书
期中考试复习计划
2015/01/19 职场文书
担保书范文
2015/01/20 职场文书
工作能力自我评价2015
2015/03/05 职场文书
护士自我推荐信范文
2015/03/24 职场文书
python如何进行基准测试
2021/04/26 Python
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL