详解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 相关文章推荐
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
js实现商品抛物线加入购物车特效
Nov 18 Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
JS解析后台返回的JSON格式数据实例
Aug 06 Javascript
Vue触发式全局组件构建的方法
Nov 28 Javascript
node.js的http.createServer过程深入解析
Jun 06 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 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类的使用 实例代码讲解
2009/12/28 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
Python SQLite3简介
2018/02/22 Python
python安装twisted的问题解析
2018/08/21 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
如何用Django处理gzip数据流
2021/01/29 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
房屋维修协议书范本
2014/09/25 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书