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 相关文章推荐
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
Nov 20 Javascript
浅谈类似于(function(){}).call()的js语句
Mar 30 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
jQuery实现的简洁下拉菜单导航效果代码
Aug 26 Javascript
利用JS生成博文目录及CSS定制博客
Feb 10 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 Javascript
vue-cropper组件实现图片切割上传
May 27 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
解决中英文字符串长度问题函数
2007/01/16 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
React组件的三种写法总结
2017/01/12 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python实现五子棋游戏
2019/06/18 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
领导党性分析材料
2014/02/15 职场文书
创文明城市标语
2014/06/16 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
浅谈Redis的事件驱动模型
2022/05/30 Redis