详解vue-cli快速构建vue应用并实现webpack打包


Posted in Javascript onDecember 13, 2017

Vue是什么,是一套构建用户界面的渐进式框架(官网解释),什么叫渐进式框架呢,简单回答就是主张最少,这些概念只能自己去看,自己去理解,一千个读者一千个哈姆雷特,不过多的解释。Vue官方文档 很全面的。

Vue两大核心思想,组件化和数据驱动,组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用,数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可。

一、什么是vue-cli

vue-cli是由vue官方发布的快速构建vue单页面的脚手架。参见vue-cli官方网站。http://vuejs-templates.github.io/webpack/

之前需要使用vue的单文件组件的功能,即将不同的模板分离到不同的.vue后缀的文件中,这样做需要使用webpack打包。参见官方说明:https://cn.vuejs.org/v2/guide/single-file-components.html  

然后在网上看来许多关于使用webpack打包文件的教程,如下:

https://github.com/varHarrie/Dawn-Blossoms/issues/7

普遍采用上面这篇文章介绍的方式。这样需要自己配置很多文件,操作复杂。后面我发现使用vue-cli可以实现webpack的快速打包。具体操作在后面介绍

二、安装vue-cli (基于ubuntu操作)

1、安装node

sudo apt-get install nodejs

2.安装npm

sudo apt-get install npm

2. 使用npm安装vue-cli

npm install --global vue-cli

使用vue -V检查是否安装成功。

详解vue-cli快速构建vue应用并实现webpack打包

在安装vue-cli时,已经自带安装webpack。

在这步中,可能比较慢,可以使用淘宝的镜像文件。可参考:http://riny.net/2014/cnpm/

如下设置:

npm install -g cnpm --registry=https://registry.npm.taobao.org

再使用cnpm安装vue-cli

cnpm install -g vue-cli

三、生成项目模板 vue init webpack vuedemo

webpack是模板名称,这里我们需要使用webpack的打包功能,所以使用webpack,其他更多模板参见:https://github.com/vuejs-templates

vuedemo是项目名称

上述命令回车之后,出现如下设置:

详解vue-cli快速构建vue应用并实现webpack打包

Project description :项目描述

Author: 作者

Vue build:打包方式(直接回车就可以)

Install ESL TO lint your code? 是否使用ESL代码检测

Pick an ESLint preset?  standard (设置编码风格采用stardard 参加(https://github.com/feross/standard)  

Setup unit tets with Kara + mocha?  是否安装单元测试,我选择安装

Setup e2e tests with Nightwatc? 是否安装e2e测试 ,我选择安装

进入创建的工程下面:

cd vuedemo (这里的vuedemo是之前输入的项目名)

使用tree命令查看项目目录结构如下:(如果没有tree命令,使用 sudo apt install tree安装)

详解vue-cli快速构建vue应用并实现webpack打包

安装依赖的库:

npm install

编译程序

npm run dev

详解vue-cli快速构建vue应用并实现webpack打包

同时浏览器出现如下界面:

详解vue-cli快速构建vue应用并实现webpack打包

如果没有出现 的话,可能你的8080端口被占用了,可以在config/index.js中将dev中的port改为其他值试试

四、webpack打包

这里需要的知识涉及webpack,可以参考https://github.com/varHarrie/Dawn-Blossoms/issues/7

对比上面我们提到的关于webpack的教程,我们需要关注下项目文件加下的build/webpack.base.conf.js文件

详解vue-cli快速构建vue应用并实现webpack打包

在这里,我们需要关注的只有注释的两个参数。至于config.build.assetsRoot的具体值是在哪里设置的呢?第三行:

var config = require('../config')

表明了config这个变量的引入文件加在哪里。在项目文件夹下的config/index中定义了build.assetsRoot的值

详解vue-cli快速构建vue应用并实现webpack打包

其中:__dirname是当前文件所在项目的文件夹的绝对路径

这时,我们查看文件目录如下:

详解vue-cli快速构建vue应用并实现webpack打包

运行:npm run build .这样就可以将资源文件打包到上面我们设置的文件夹dist/ 中

再次查看项目文件夹的目录结构:

详解vue-cli快速构建vue应用并实现webpack打包

此时已经自动生成了dist文件夹,在这个文件夹下有index.html文件和public文件夹,public文件夹下存放的就是webpack打包之后的文件。

五、总结:

总的来说,只需要一下几个步骤就可以快速使用vue-cli搭建使用webpack的vue单页面项目:
1、sudo apt-get install nodejs

2、sudo apt-get install nmp

3、nmp install -g vue-cli

4、vue init webpack vuedemo

5、cd vuedemo

6、npm run dev

7、npm run bulid

六、参考网站

vue-cli官网:http://vuejs-templates.github.io/webpack/e2e.html

webpack打包介绍:https://github.com/varHarrie/Dawn-Blossoms/issues/7

基于vue-cli快速构建:https://3water.com/article/112174.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript事件列表解说
Dec 22 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
编写简单的jQuery提示插件
Dec 21 Javascript
javascript使用avalon绑定实现checkbox全选
May 06 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
老生常谈的跨域处理
Jan 11 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
Oct 07 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 #Javascript
Angular4编程之表单响应功能示例
Dec 13 #Javascript
详解webpack require.ensure与require AMD的区别
Dec 13 #Javascript
vue登录路由验证的实现
Dec 13 #Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 #Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 #Javascript
vue组件中使用iframe元素的示例代码
Dec 13 #Javascript
You might like
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python的log日志功能及设置方法
2019/07/11 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
档案接收函范文
2014/01/10 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
经理任命书模板
2014/06/06 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL