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 相关文章推荐
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
Mar 12 Javascript
Node.js模块加载详解
Aug 16 Javascript
Javascript中的Callback方法浅析
Mar 15 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
vue 实现左右拖拽元素并且不超过他的父元素的宽度
Nov 30 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
JavaScript快速调试的两个技巧
Nov 04 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
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php获取远程文件大小
2015/10/20 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Python中的yield浅析
2014/06/16 Python
Python创建xml的方法
2015/03/10 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
如何在python中使用selenium的示例
2017/12/26 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
乡镇庆八一活动方案
2014/02/02 职场文书
社会实践活动总结报告
2014/04/29 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2014年营业员工作总结
2014/11/18 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
申报材料格式
2014/12/30 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
怎样写家长意见
2015/06/04 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android