vue-cli 3.0 自定义vue.config.js文件,多页构建的方法


Posted in Javascript onSeptember 19, 2018

使用自己基于vue-cli 2.X改造的前端多页脚手架有近1年多时间了,一直没机会升级3.0版本

开始零零碎碎开始写一些功能,顺便分享一下

const path = require('path')
const glob = require('glob')
/** 获取多页的入口脚本和模板 */
const getPages = (() => {
 const [
 globPathHtml,
 globPathJs,
 pages,
 tempSet
 ] = [
 ['./src/modules/**/index.html', 'template'], // 入口模板正则
 ['./src/modules/**/main.js', 'entry'], // 入口脚本正则
 Object.create(null),
 new Set()
 ]
 const getMultiPageConf = (globPath, keyName) => {
 let [fileList, tempArr, modName] = [glob.sync(globPath), [], null]
 if (fileList.length !== 0) {
  for (let entry of fileList) {
  tempArr = path.dirname(entry, path.extname(entry)).split('/')
  modName = tempArr[tempArr.length - 1]
  if (tempSet.has(modName)) {
   Object.assign(pages[modName], { [keyName]: entry, 'filename': `${modName}.html` })
  } else {
   Reflect.set(pages, modName, { [keyName]: entry }) && tempSet.add(modName)
  }
  }
  return true
 } else {
  if (keyName === 'template') {
  throw new Error('无法获取多页入口模板')
  } else if (keyName === 'entry') {
  throw new Error('无法获取多页入口脚本')
  } else {
  throw new Error('无法获取多页信息')
  }
 }
 }
 try {
 while (getMultiPageConf(...globPathHtml) && getMultiPageConf(...globPathJs)) return pages
 } catch (err) {
 console.log('获取多页数据错误:', err)
 }
})()
console.log('pages: ', getPages)

打印结果:

pages: { mod1:
 { template: './src/modules/mod1/index.html',
  entry: './src/modules/mod1/main.js',
  filename: 'mod1.html' },
 mod2:
 { template: './src/modules/mod2/index.html',
  entry: './src/modules/mod2/main.js',
  filename: 'mod2.html' },
 mod3:
 { template: './src/modules/mod3/index.html',
  entry: './src/modules/mod3/main.js',
  filename: 'mod3.html' } }

使用:

/** vue.config.js */
module.exports = {
 ...
 pages: getPages
 ...
}

以上这篇vue-cli 3.0 自定义vue.config.js文件,多页构建的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 判断函数类型完美解决方案
Sep 02 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
使用jquery mobile做幻灯播放效果实现步骤
Jan 04 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
Feb 12 Javascript
JavaScript二维数组实现的省市联动菜单
May 08 Javascript
jQuery实现HTML5 placeholder效果实例
Dec 09 Javascript
基于jQuery的checkbox全选问题分析
Nov 18 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
Mar 29 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
Aug 25 Javascript
vue移动端UI框架实现QQ侧边菜单组件
Mar 09 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 Javascript
vue.extend与vue.component的区别和联系
Sep 19 #Javascript
webpack+vue+express(hot)热启动调试简单配置方法
Sep 19 #Javascript
自己动手封装一个React Native多级联动
Sep 19 #Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 #Javascript
5分钟快速掌握JS中var、let和const的异同
Sep 19 #Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 #Javascript
node.js环境搭建图文详解
Sep 19 #Javascript
You might like
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php之XML转数组函数的详解
2013/06/07 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
公司年会晚宴演讲稿
2014/01/06 职场文书
新年联欢会主持词
2014/03/27 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
运动会宣传语
2015/07/13 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技