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 相关文章推荐
js实现动态改变字体大小代码
Jan 02 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 Javascript
如何利用模板将HTML从JavaScript中抽离
Oct 08 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
JavaScript Canvas实现验证码
Aug 02 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
vue 组件基础知识总结
Jan 26 Vue.js
小程序实现订单倒计时功能
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数组中包含中文的排序方法
2014/06/03 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
用 JSON 处理缓存
2007/04/27 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Numpy数组的广播机制的实现
2020/11/03 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
大学生学业生涯规划
2014/01/05 职场文书
企业党员公开承诺书
2014/03/26 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
初中教师个人总结
2015/02/10 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android