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 radio 操作代码
Mar 16 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
Jquery.addClass始终无效原因分析
Sep 08 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
屏蔽script注入小例子
Nov 12 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
Jan 24 Javascript
利用JS制作万年历的方法
Aug 16 Javascript
Javascript中的getter和setter初识
Aug 17 Javascript
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
Vue3 Composition API的使用简介
Mar 29 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
ajax php 实现写入数据库
2009/09/02 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
input按钮的事件处理大全
2010/12/10 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
javascript中this关键字详解
2016/12/12 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
Python中Collection的使用小技巧
2014/08/18 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
自学python的建议和周期预算
2019/01/30 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
Python编写打字训练小程序
2019/09/26 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
公司JAVA开发面试题
2015/04/02 面试题
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
结对共建工作方案
2014/06/02 职场文书
介绍信的写法
2015/01/31 职场文书
学习保证书怎么写
2015/02/26 职场文书
Docker部署Mysql8的实现步骤
2022/07/07 Servers