我在撰写《Vue2实践揭秘》时采用的 vue-cli 版本是 v2.5.1,由于实体书的出版周期比电子书的要长,所以到全书出版vue-cli已经更新到 v2.8.2 了,我在书中曾经对 vue-cli 的全部官方模板进行过一个全面的解释,今天看了到这个更新版本算一算日子也已经与我写书时相距接近半年了,所以也特意重新来对每个模板过了一遍,作为对《Vue2实践揭秘》的补充更新吧。

先来看看有啥不同:

由于Webpack进行了一次很大的升级,所以可能在2.8之前的一些vue项目会导致不能运行,这是由于webpack这次的升级实在太过于恶心,竟然直接修改配置项的名称,最不可以理喻的是为强制loader引用要加入loader的名称后缀,实在是影响生产力的一次升级。

官方Webpack模板的内容也没啥新的变化,具体的内容我在《Vue2实践揭秘》中已经列出。新版本的可能只是存一些小小的细微不同,这并不会很重要,因为总体的思路并没有什么本质上的变化,新的变更使用新版本的方式就好了。

在 vue-cli v2.8.2 中多了一个叫 PWA 的全新模板。按照这里的解释这是一个基于vue-cli 的 webpack 模板,(渐进式网页应用)。

运行init指令来建立一个新的Vue项目:

$ vue init pwa vue-pwa

惊喜地发现PWA在初始化时多了一项询问是否安装vue-router ,这确实是一个不错的更新,毕竟vue-router太常用了。

PWA 是 Google 推崇的一种Web的开发规则,也就是 Progressive Web Apps 中文翻译过来是 渐进式网页应用,我个人觉得这个概念有点白痴,只要有程序继续被维护做增量式的改善那不就是这个所谓的PWA的概念了嘛,并不是啥新东东。只要细细地看上述的网页链接其实就是google给出了一个完整的checklist建议如何开发一个“规范”的"App"。

回到这个 PWA 模板,我曾将与 Webpack 模板之间的所有文件一个一个地对比过,以下是它们之间的一些差异:

1 在 build/webpack.prod.conf.js 中的第99行开始的多了这么一个配置:

 // service worker caching
new SWPrecacheWebpackPlugin({
cacheId: 'my-vue-app',
filename: 'service-worker.js',
staticFileGlobs: ['dist/**/*.{js,html,css}'],
minify: true,
stripPrefix: 'dist/'
})

这时可以打开package.json 就可以发现在devDependencies配置内多了一个 sw-precache-webpack-plugin 依赖包,上面这个配置就是为了配这个包而存在的。

sw-precache-webpack-plugin 这个插件其实就是利用Chrome的缓存功能对静态资源进行强制缓存,这也不是啥新的功能这是好几年前Chrome在力推HTML5时推出Offline功能时就内嵌到浏览器内的一项目功能。对于这东东实在没啥好说的,平时构建Vue项目时用它就好了,如果是做内部项目之用的话它基本上不会发挥出多大效果,如果对SW有兴趣的童鞋我推荐可以看看下面的这几篇文章:

2 在 static 静态资源文件夹内多了一个 manifest.json 文件用作移动端浏览器识别此网站的一些基本Meta信息之用。

3 index.html 这个文件有非常巨大的差异PWA模板对index.html入口页面的meta标记做了非常丰富的补充定义,其目的主要是针对各种不同移动设备在访问我们开发的Vue项目时能具有更好的兼容性。另外它增加了一堆的脚本,这个脚本主要是在页面的load事件中伺候前文说到的 Service worker 配置之用的。

然后就没有然后了,PWA模板基本上就是做出了一点点的修改没有给我们太多的惊喜。实际使用起来对于没有采用CDN的或者CDN预算紧巴巴的童鞋PWA确实也是个不错的选择。

关于 vue-cli v2.8.2的更多相关文章

  1. 专访Vue作者尤雨溪:Vue CLI 3.0重构的原因

    1.为什么要对 Vue CLI 进行大规模修改? 尤雨溪认为旧版本的 Vue CLI 本质上只是从 GitHub 拉取模版,这种拉模版的方式有几个问题: (1) 在单个模版里面同时支持太多选项会导致模 ...

  2. vue/cli 3.0脚手架搭建

    在vue 2.9.6中,搭建vue-cli脚手架的流程是这样的: 首先 全局安装vue-cli,在cmd中输入命令: npm install --global vue-cli  安装成功:  安装完成 ...

  3. 基于@vue/cli 的构建项目(3.0)

    1.检测node的版本号 注意:1.Vue CLI需要Node.js的版本 8.9+(推荐8.11.0+) 所以在安装Vue CLI之前先看下node的版本 node -v 2.安装@vue/cli ...

  4. vue cli 3.x 项目部署到 github pages

    github pages 是 github 免费为用户提供的服务,写博客,或者部署一些纯静态项目. 最近将 vue cli 3.x 初始化项目部署到 github pages,踩了一些坑,记录如下. ...

  5. @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件

    目录 @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件 运行 使用 配置 svg-sprite-loader 调用当前环境下的颜色 props @vue/cl ...

  6. vue cli使用融云实现聊天

    公司有个项目要实现一个聊天功能,需求如下图,略显随意 公司最终选择融云这个吊炸天的即时通信,文档详细的一匹,刚开始看文档感觉很详细实现起来也不麻烦,有很多开源的demo可以在线演示和下载 不过我们的项 ...

  7. Vue CLI 3.0脚手架如何在本地配置mock数据

    前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...

  8. Vue CLI 3使用:浏览器兼容性

    package.json 文件里的 browserslist 字段 (或一个单独的 .browserslistrc 文件),指定了项目的目标浏览器的范围.这个值会被 @babel/preset-env ...

  9. 基于vue cli 3.0创建前端项目并安装cube-ui

    前提条件: 安装node.js. 国内的开发者最好先配置淘宝镜像. 之后用cnpm来代替npm命令. 项目创建过程: 打开cmd,输入命令进入目标工作空间,以本机项目为例: cd /d d: cd D ...

  10. Vue CLI 3+tinymce 5富文本编辑器整合

    基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...

随机推荐

  1. 基于Prism.Windows的UWP开发备忘

    以前做UWP开发都是使用MvvmLight,主要是简单易上手,同时也写了很多MvvmLight的开发系列文章: UWP开发必备以及常用知识点总结 UWP开发之Mvvmlight实践九:基于MVVM的项 ...

  2. Java 中的接口有什么作用?好处?

    接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起. 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接 ...

  3. 探讨数据进行AES加密和解密以及.NET Core对加密和解密为我们提供了什么?

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  4. 腾讯云无法绑定公网IP问题解释与解决方案。

    http://blog.csdn.net/chenggong2dm/article/details/51475222 解释:公网IP并不直接配置在服务器上,而是在服务器外部的路由上,通过某种映射连接. ...

  5. bzoj4784 [Zjoi2017]仙人掌

    Description 如果一个无自环无重边无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌.所谓简单环即不经过重复的结点的环. 现在九条可怜手上有一张无自环无重边的无向连通图,但是她觉得 ...

  6. 图零直播新闻发布会—TOLINK2.0全面上线

    在网络直播时代和现代信息技术条件下,教务管理正在由传统管理方式向数字化管理模式转变.教务管理创新需要现代信息技术来实现,使得教务管理的质量和效率得到了质的飞跃.图零直播,中国IT在线直播教育引领者,在 ...

  7. window系统下sbt的安装

    最近进了一个新公司,用playframework,不用maven,用sbt,然后就来写一下自己的心酸sbt安装进程吧. 第一步: 安装java8,配置好环境变量,这些不用多说吧,之所以是要8版本,是因 ...

  8. 窝上课不听,how to learn C language easily(1)

    C language 学习心得 附:为啥起这么霸气侧漏,招大神们鄙视的标题,正如我在<C language>随笔的介绍中写的,这是一个写个妹纸们看的C language的文章.没错!!写这 ...

  9. 模板方法模式(Tempalte Method Pattern)

    模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有 ...

  10. bootstrap学习笔记之导航条基础

    导航条基础 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个"条"字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背 ...