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 获得绝对,相对位置的坐标方法
Feb 09 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
Jul 17 Javascript
Extjs单独定义各组件的实例代码
Jun 25 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
jQuery plugin animsition使用小结
Sep 14 jQuery
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
JavaScript实现的反序列化json字符串操作示例
Jul 18 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php实现图片缩略图的方法
2016/03/29 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
网页javascript精华代码集
2007/01/24 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
js过滤HTML标签完整实例
2015/11/26 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
详解js的六大数据类型
2016/12/27 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
Python有序字典简单实现方法示例
2017/09/28 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android