vue.js多页面开发环境搭建过程


Posted in Javascript onApril 24, 2019

利用 vue-cli 搭建的项目大都是单页面应用项目,对于简单的项目,单页面就能满足要求。但对于有多个子项目的应用,如果创建多个单页面,显示有点重复,特别是 node_modules 会有多份相同的。如果全部放到单页面项目下,又显得有点乱,这时候通过改造 vue-cli 搭建的项目为多页面,就是一个比较好的解决方法。

如何改造单页面 vue.js 项目为多页面项目?下面是这次改造的具体过程。

 一、创建单页面 vue.js 项目

这里直接使用官方提供的脚手架 vue-cli3 创建,具体的过程请参考「vue-cli3.0 升级记录」

二、多页面配置

1、添加配置文件

在项目根路径下( 与 package.json 同目录 )添加 vue.config.js,内容如下:

module.exports = {
  pages: {
   index: {
    // 入口js的路径
    entry: './src/main',
 // 页面模板路径
    template: './src/public/index.html'
   }
  }
 }

上面的配置其实就是 vue-cli 建立项目的默认配置,如果增加页面,在 pages 节点下添加配置即可。但这种方式,每次增加一个新页面,就需要手动添加节点,这种重复的事情显然不智能。下面继续改造。

 2、调整项目结构

要自动化,那么就需要按定一种规则把页面组织下。如把所有路由页面都放到 src/pages 目录下,改造后的结构如下:

vue.js多页面开发环境搭建过程

3、编写自动配置文件

在项目根路径下( 与 package.json 同目录 )添加 vue.util.js,内容如下:

const path = require('path')
 const glob = require('glob')
 const START_PATH = '/src/pages/'
 const PAGE_PATH = path.resolve(__dirname, '.' + START_PATH) 
 exports.pages = function () {
  var entryFiles = glob.sync(PAGE_PATH + '/**/*.html')
  var obj = {}
  entryFiles.forEach((filePath) => {
   var dirPath = filePath.substring(0, filePath.lastIndexOf('/'))
   var dirName = dirPath.substring(dirPath.lastIndexOf('/') + 1)
   var filename = filePath.substring(filePath.lastIndexOf(START_PATH) + START_PATH.length, filePath.lastIndexOf('/'))
   if (filename.endsWith(dirName)) {
    obj[filename] = {
     entry: filePath.substring(0, filePath.lastIndexOf('.html')) + '.js',
     template: filePath.substring(0, filePath.lastIndexOf('.html')) + '.html'
    }
   }
  })
  return obj
 }

在 vue.config.js 使用上面的配置

const utils = require('./vue.util')
 module.exports = {
 pages: utils.pages()
 }

 三、测试下

yarn dev

浏览器输入:

http://localhost:8080/index.html 和 http://localhost:8080/index2.html

OK,多页面配置完成

总结

以上所述是小编给大家介绍的vue.js多页面开发环境搭建过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
常用DOM整理
Jun 16 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
jQuery实现CheckBox全选、全不选功能
Jan 11 Javascript
canvas知识总结
Jan 25 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
taro开发微信小程序的实践
May 21 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 Javascript
javascript实现计算器功能
Mar 30 Javascript
Vue中 axios delete请求参数操作
Aug 25 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 Javascript
小程序实现订单倒计时功能
Apr 23 #Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 #Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 #Javascript
vue缓存的keepalive页面刷新数据的方法
Apr 23 #Javascript
Vue 指令实现按钮级别权限管理功能
Apr 23 #Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 #Javascript
Vue infinite update loop的问题解决
Apr 23 #Javascript
You might like
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php的4种常用运行方式详解
2016/12/22 PHP
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
js实现简单的验证码
2015/12/25 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
详解A标签中href=""的几种用法
2017/08/20 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python执行使用shell命令方法分享
2017/11/08 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python——全排列数的生成方式
2020/02/26 Python
Python生成器generator原理及用法解析
2020/07/20 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
营销总经理岗位职责
2014/02/02 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
社区好人好事材料
2014/12/26 职场文书
优质护理服务心得体会
2016/01/22 职场文书