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 相关文章推荐
IE8 引入跨站数据获取功能说明
Jul 22 Javascript
javascript 特殊字符串
Feb 25 Javascript
避免 showModalDialog 弹出新窗体的原因分析
May 31 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
Oct 21 Javascript
浅析JavaScript中的类型和对象
Nov 29 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
Vue中父组件向子组件通信的方法
Jul 11 Javascript
使用Angular CLI从蓝本生成代码详解
Mar 24 Javascript
jQuery实现电梯导航模块
Dec 22 jQuery
jquery实现穿梭框功能
Jan 19 jQuery
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
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php获得当前的脚本网址
2007/12/10 PHP
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
Python开发编码规范
2006/09/08 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
python实现代码统计程序
2019/09/19 Python
详解Django admin高级用法
2019/11/06 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
司机的工作范围及职责
2013/11/13 职场文书
会议接待欢迎词
2014/01/12 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python