前提:在这里使用的是webpack模板进行搭建

第一步、安装Vue-cli并且进行初始化

首先打开git,在里面使用npm全局安装Vue-cli,并且进行初始化
npm i vue-cli -g
然后使用vue init <template(模板名,我这里使用的是webpack)> <项目文件夹名称(我这里使用的是project)>初始化一个Vue项目模板
vue init webpack project
之后在模板下载时候会弹出如下配置选项

 
 
 
 

配置好后按下回车就构建完成了Vue脚手架,之后cd进入项目,并且进行node模块的安装npm i
cd project&&npm i
这时候Vue-cli的准备工作就完成了,这时候可以通过npm run dev进入开发环境,启动后是这个样子的,但是此时的脚手架的配置都是针对单页面应用进行的,入口只有一个index.html,所以下一步就要对项目目录的结构进行一些调整

 
 

第二步、对项目目录进行一些调整

我们主要针对的是src目录进行调整,首先来看看调整前的项目目录结构

 
调整前的项目目录结构

进入src文件夹中,新建一个文件夹,取名pages,用于存放页面文件,然后在pages里面新建一个文件夹叫index用于存放首页,然后将下图红框内的文件(文件夹)都拉进index文件夹里面,还有最外层的index.html也拉进去

 
 
 
 

这时候的src文件夹里面只有两个文件夹一个是components用于存放组件文件,pages用于存放页面,然后新建一个modules文件夹用于存放自己写的页面模块

 
 

最后进入index文件夹,将里面的main.js改成index.js,保证页面的入口js文件和模板文件的名称一致
这时候的项目目录结构接调整完毕了

第三步、对相应的配置文件进行修改

  • 首先进入build文件夹下的utils文件中进行修改

     
     

    在utils文件中添加两个函数

  1. // glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
  2. var glob = require('glob')
  3. // 页面模板
  4. var HtmlWebpackPlugin = require('html-webpack-plugin')
  5. // 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
  6. var PAGE_PATH = path.resolve(__dirname, '../src/pages')
  7. // 用于做相应的merge处理
  8. var merge = require('webpack-merge')
  9. //多入口配置
  10. // 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
  11. // 那么就作为入口处理
  12. exports.entries = function() {
  13. var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
  14. var map = {}
  15. entryFiles.forEach((filePath) => {
  16. var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
  17. map[filename] = filePath
  18. })
  19. return map
  20. }
  21. //多页面输出配置
  22. // 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
  23. exports.htmlPlugin = function() {
  24. let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
  25. let arr = []
  26. entryHtml.forEach((filePath) => {
  27. let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
  28. let conf = {
  29. // 模板来源
  30. template: filePath,
  31. // 文件名称
  32. filename: filename + '.html',
  33. // 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
  34. chunks: ['manifest', 'vendor', filename],
  35. inject: true
  36. }
  37. if (process.env.NODE_ENV === 'production') {
  38. conf = merge(conf, {
  39. minify: {
  40. removeComments: true,
  41. collapseWhitespace: true,
  42. removeAttributeQuotes: true
  43. },
  44. chunksSortMode: 'dependency'
  45. })
  46. }
  47. arr.push(new HtmlWebpackPlugin(conf))
  48. })
  49. return arr
  50. }
  • 修改build/webpack.base.conf.js的入口配置

     
     

    找到这一段,并且修改为

     
     
     
     
  • 修改build/webpack.dev.conf.js(开发环境)和build/webpack.prod.conf.js(生产环境)的多页面配置
    1.开发环境build/webpack.dev.conf.js

     
     

    找到该段并且注释掉,然后在后面添加.concat(utils.htmlPlugin())

     
     

    2.生产环境webpack.prod.conf.js

     
     

    注释掉这段,并且在后面添加.concat(utils.htmlPlugin())

     
     
     
     

第四步、对页面应用配置已基本完成,进行测试

这时候可以在pages里面添加一个test文件夹,在test文件夹里面创建一个html文件作为测试页面

 
 
 
 

然后重新npm run dev打开开发环境,在路径中输入test.html,如果能进入test页面,那么就多页面应用的配置就成功了

 

使用Vue-cli搭建多页面应用时对项目结构和配置的调整的更多相关文章

  1. 将Vue-cli搭建的项目改造成多页面应用时对项目结构和配置的调整

    创建项目 首先初始化一个Vue项目模板,之后在模板下载时候会弹出如下配置选项 vue init webpack demo 配置好后按下回车就构建完成了Vue脚手架,之后cd进入项目,并且进行node模 ...

  2. Vue CLI 5 和 vite 创建 vue3.x 项目以及 Vue CLI 和 vite 的区别

    这几天进入 Vue CLI 官网,发现不能选择 Vue CLI 的版本,也就是说查不到 vue-cli 4 以下版本的文档. 如果此时电脑上安装了 Vue CLI,那么旧版安装的 vue 项目很可能会 ...

  3. vue cli搭建项目及文件引入

    cli搭建方法:需安装nodejs先 1.npm install -g cnpm --registry=https://registry.npm.taobao.org //安装cnpm,用cnpm下载 ...

  4. 使用@vue/cli搭建vue项目开发环境

    当前系统版本 mac OS 10.14.2 1.安装node.js开发环境 前端开发框架和环境都是需要 Node.js  vue的运行是要依赖于node的npm的管理工具来实现 <mac OS ...

  5. Vue+Iview+Node 项目结构和配置

    1.项目调整后的目录 api:数据接口定义 assets:静态文件 components:组件  config:项目相关配置  driective:指令   router:路由   store:状态管 ...

  6. vue cli搭建项目

    1.首先电脑要在安装node环境下才能运行 2.全局安装webpack:npm install webpack -g 3.安装vue脚手架: npm install vue-cli -g 4.新建文件 ...

  7. vue cli搭建的vue项目 不小心开了eslint 一直报黄色的警告

    报错必须处理,警告也忍不了,发现在bulid -webpack.base.config.js 里找到 const createLintingRule = () => ({ /*test: /\. ...

  8. 利用脚手架vue cli搭建vue项目

    vue.js https://vuejs.org/ 基础: http://cn.vuejs.org/v2/guide/installation.html 1.安装需要利用npm包管理器,所以首先安装n ...

  9. 使用Vue搭建多页面应用

    使用Vue-cli搭建多页面应用时对项目结构和配置的调整   前提:在这里使用的是webpack模板进行搭建 第一步.安装Vue-cli并且进行初始化 首先打开git,在里面使用npm全局安装Vue- ...

随机推荐

  1. 20190317 A

    今天是学长wsy的题,我理论会100+50+30=180,实际100+20+10=130,充分体现我的菜 最近日常模拟赛挂分50到60,很危险,这2天一定要调整好... Upd:T2我认为50的划分数 ...

  2. 模板 RMQ问题ST表实现/单调队列

    RMQ (Range Minimum/Maximum Query)问题是指: 对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,R ...

  3. python脚本练习之编译安装python

    练习 py-shelll #coding=utf-8 import os,sys if os.getuid() == 0: pass else: print('当前用户不是root,请以root用户执 ...

  4. webform运行时弹出JavaScript的alert窗口

    https://stackoverflow.com/questions/9720143/asp-net-web-application-message-box Or create a method l ...

  5. 前端学习之CSS

    CSS介绍 CSS(Cascading Style Sheet, 层叠样式表)定义如何显示HTML元素, 给HTML设置样式, 让它更加美观. 当浏览器读到一个样式表, 它就会按照这个样式表来对文档进 ...

  6. scipy 短时傅里叶变化

    原文链接   https://www.cnblogs.com/hoojjack/p/9967298.html 计算短时傅里叶变换(STFT) scipy.signal.stft(x,fs = 1.0, ...

  7. [mysql]You must reset your password using ALTER USER statement before executing this statement.

    原因分析: MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间.这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTE ...

  8. CSS scroll-behavior和JS scrollIntoView让页面滚动平滑

    转自 https://www.zhangxinxu.com/wordpress/2018/10/scroll-behavior-scrollintoview-%E5%B9%B3%E6%BB%91%E6 ...

  9. echarts生成的图表大小怎么随屏幕的大小改变自适应

    最近在做图表,记录一下用到的知识点,当做自己的日记吧,会不断添加新内容 1,echarts生成的图表大小怎么随屏幕的大小改变自适应? this.chart.setOption(this.options ...

  10. SSH实现ajax

    (1)首先要引入需要pom文件 <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-json-plugin --& ...