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 相关文章推荐
Javascript与flash交互通信基础教程
Aug 07 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
js的alert样式如何更改如背景颜色
Jan 22 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
微信小程序下拉框功能的实例代码
Nov 06 Javascript
vue-i18n实现中英文切换的方法
Jul 06 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 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 HTML代码串 截取实现代码
2009/06/29 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
微信小程序制作表格的方法
2019/02/14 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
python中kmeans聚类实现代码
2018/02/23 Python
Python单元测试简单示例
2018/07/03 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python求质数列表的例子
2019/11/24 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
个人自我评价范文
2014/02/05 职场文书
经营管理策划方案
2014/05/22 职场文书
阅兵口号
2014/06/19 职场文书
个人简历求职信范文
2015/03/20 职场文书
学校重阳节活动总结
2015/03/24 职场文书
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL