全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解vue-cli + webpack 多页面实例应用

关于vue.js

vue.js是一套构建用户界面的 轻型的渐进式前端框架。它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。使用vue可以给你的开发带来极致的编程体验。

关于vue-cli

Vue-cli是vue官方提供的一个命令行工具(vue-cli),可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程。只需一分钟即可启动带热重载、保存时静态检查以及可用于生产环境的构建配置的项目。

疑问

vue-cli主要是用于构建单页应用的脚手架,但是现实项目中,大部分项目都是多页的,怎么样可以很好的利用这一套官方配置呢?我在网上找了一下, 几乎找不到vue多页应用实例,所以才有基于vue-cli生成的单页应用进行改造。

代码地址:

Github:https://github.com/breezefeng/vue-cli-multipage

使用方法

# install dependencies
npm install

# serve with hot reload at localhost:8080/module/index.html
npm run dev

# build for production with minification
npm run build

目录结构

vue-cli-multipage
 |---build
 |---config
 |---src
  |---assets
   |---img 图片文件
   |---css 样式文件
   |---font 字体文件   
  |---components 组件
   |---Button.vue 按钮组件
   |---Hello.vue
  |---module
   |---index 首页模块
    |---index.html
    |---index.js
    |---App.vue
   |---detail 详情页模块
    |---detail.html
    |---detail.js
    |---App.vue

从目录结构上,各种组件、页面模块、资源等都按类新建了文件夹,方便我们储存文件。

其实我们所有的文件,最主要都是放在module文件夹里,以文件夹名为html的名称。

例如:

|---index 首页模块
 |---index.html
 |---index.js
 |---App.vue

此时我们访问的链接是:http://localhost:8080/module/index.html

这里一定要注意,在module里下级文件夹里需要将html,js,vue template 都统一放在当前文件夹里,当然你也可以继续放其他的资源,例如css、图片、组件等,webpack会打包到当前页面里。

如果项目不需要这个页面了,可以把这个文件夹直接删除掉,干净利落,干活也开心。

像以前传统的开发项目,所有的图片都习惯放在images里,当项目有改动时,有些图片等资源用不上了,但还占着坑位,导致项目越来越大,虽然现在的硬件容量大到惊人,但我们应该还是要养到一个良好的习惯。

组件的使用

组件(Component)是 vue.js 最强大的功能之一,当你发现使用组件可以减少造轮子里,你会深深的爱上它。

我们的组件都是放在components目录下的,调用组件的方法也很简单。

import Hello from 'components/Hello'

然后记得在*.vue注册导入的组件,要不然会无法使用。

import Hello from 'components/Hello'

export default {
 name: 'app',
 components: {
  //在这里注册组件,不然无法使用
  Hello
 }
}

构建代码说明

那我们使用的是vue-cli的手脚架,用过vue-cli的同学都知道构建代码是放在根目录build下,vue多页面主要修改了这三个JS文件:webpack.base.conf.js、webpack.dev.conf.js、webpack.prod.conf.js。

/**
**  [webpack.base.conf.js]这里主要列出相关代码的修改点,具体代码请看build/webpack.base.conf.js
*/
var entries = getEntry('./src/module/**/*.js'); // 获得入口js文件

module.exports = {
 entry: entries,
 ....
}

function getEntry(globPath) {
 var entries = {},
  basename, tmp, pathname;

 glob.sync(globPath).forEach(function (entry) {
  basename = path.basename(entry, path.extname(entry));
  tmp = entry.split('/').splice(-3);
  pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径
  entries[pathname] = entry;
 });

 return entries;
}
/**
**  [webpack.prod.conf.js]这里主要列出相关代码的修改点,具体代码请看build/webpack.base.prod.js
*/
function getEntry(globPath) {
 var entries = {},
  basename, tmp, pathname;

 glob.sync(globPath).forEach(function (entry) {
  basename = path.basename(entry, path.extname(entry));
  tmp = entry.split('/').splice(-3);
  pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径
  entries[pathname] = entry;
 });
 return entries;
}

var pages = getEntry('./src/module/**/*.html');

for (var pathname in pages) {
 // 配置生成的html文件,定义路径等
 var conf = {
  filename: pathname + '.html',
  template: pages[pathname],  // 模板路径
  inject: true,       // js插入位置
  minify: {
   //removeComments: true,
   //collapseWhitespace: true,
   //removeAttributeQuotes: true
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency'
 };

 if (pathname in module.exports.entry) {
  conf.chunks = ['manifest', 'vendor', pathname];
  conf.hash = true;
 }

 module.exports.plugins.push(new HtmlWebpackPlugin(conf));
}

修改的代码不是很多,但是却为多页应用提供了强大的构建支持。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # cli  # webpack  # webpack2  # vue-cli  # 多页面  # vue cli 3.x 项目部署到 github pages的方法  # Vue-cli创建项目从单页面到多页面的方法  # 详解vue-cli + webpack 多页面实例配置优化方法  # vue-cli实现多页面多路由的示例代码  # 详解如何将 Vue-cli 改造成支持多页面的 history 模式  # vue-cli创建的项目  # 配置多页面的实现方法  # 基于vue cli重构多页面脚手架过程详解  # 详解vue-cli多页面工程实践  # Vue CLI3基础学习之pages构建多页应用  # 放在  # 都是  # 多页  # 文件夹里  # 首页  # 的是  # 这一  # 在这里  # 很好  # 我在  # 可用于  # 你会  # 上了  # 不需要  # 找不到  # 当你  # 只需  # 其他的  # 也很  # 才有 


相关文章: 武清网站制作公司,天津武清个人营业执照注销查询系统网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  建站主机选购指南与交易推荐:核心配置解析  招商网站制作流程,网站招商广告语?  建站之星如何开启自定义404页面避免用户流失?  seo网站制作优化,网站SEO优化步骤有哪些?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何确保FTP站点访问权限与数据传输安全?  贸易公司网站制作流程,出口贸易网站设计怎么做?  建站之星安装路径如何正确选择及配置?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何通过万网虚拟主机快速搭建网站?  建站之星CMS五站合一模板配置与SEO优化指南  如何用免费手机建站系统零基础打造专业网站?  如何在Windows虚拟主机上快速搭建网站?  建设网站制作价格,怎样建立自己的公司网站?  建站主机服务器选型指南与性能优化方案解析  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  小程序网站制作需要准备什么资料,如何制作小程序?  ,柠檬视频怎样兑换vip?  微信小程序 五星评分(包括半颗星评分)实例代码  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在香港服务器上快速搭建免备案网站?  建站主机SSH密钥生成步骤及常见问题解答?  如何在云主机快速搭建网站站点?  兔展官网 在线制作,怎样制作微信请帖?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  linux top下的 minerd 木马清除方法  七夕网站制作视频,七夕大促活动怎么报名?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  制作门户网站的参考文献在哪,小说网站怎么建立?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何设置并定期更换建站之星安全管理员密码?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何用AWS免费套餐快速搭建高效网站?  简单实现Android验证码  想学网站制作怎么学,建立一个网站要花费多少?  如何获取PHP WAP自助建站系统源码?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何制作一个表白网站视频,关于勇敢表白的小标题? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。