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 相关文章推荐
JS操作图片(增,删,改) 例子
Apr 17 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
利用纯Vue.js构建Bootstrap组件
Nov 03 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
Sep 19 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
Oct 23 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
Vue学习之常用指令实例详解
Jan 06 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
xml+php动态载入与分页
2006/10/09 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
JS字符串函数扩展代码
2011/09/13 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
python中实现将多个print输出合成一个数组
2018/04/19 Python
python实现的自动发送消息功能详解
2019/08/15 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
python关于倒排列的知识点总结
2020/10/13 Python
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
优纳科技软件测试面试题
2012/05/15 面试题
《猴子种果树》教学反思
2014/04/26 职场文书
医德医风演讲稿
2014/05/20 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang