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 相关文章推荐
Extjs中常用表单介绍与应用
Jun 07 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
ES6中Iterator与for..of..遍历用法分析
Mar 31 Javascript
详解使用vue-admin-template的优化历程
May 20 Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 Javascript
详解Node.js异步处理的各种写法
Jun 09 Javascript
小程序Scroll-view上拉滚动刷新数据
Jun 21 Javascript
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
微信小程序实现购物车代码实例详解
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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
php遍历CSV类实例
2015/04/14 PHP
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
python使用wxpython开发简单记事本的方法
2015/05/20 Python
Python回调函数用法实例详解
2015/07/02 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
Python中异常重试的解决方案详解
2017/05/05 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
2014年五四青年节活动策划书
2014/04/22 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
项目工作说明书
2014/07/29 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
孝女彩金观后感
2015/06/10 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书