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 相关文章推荐
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
JS隐藏号码中间4位代码实例
Apr 09 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
教你使用vscode 搭建react-native开发环境
Jul 07 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 伪造本地文件包含漏洞的代码
2011/11/03 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
php实现倒计时效果
2015/12/19 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
javascript各种复制代码收集
2008/09/20 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python编写登陆接口的方法
2017/07/10 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
医学生自我鉴定范文
2013/11/08 职场文书
音乐教师求职信
2014/06/28 职场文书
七一讲话心得体会
2014/09/05 职场文书
单位在职证明书
2014/09/11 职场文书
2014年保洁工作总结
2014/11/24 职场文书
学生通报表扬范文
2015/05/04 职场文书
《学会看病》教学反思
2016/02/17 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
简单了解 MySQL 中相关的锁
2021/05/25 MySQL