详解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 相关文章推荐
Gird事件机制初级读本
Mar 10 Javascript
javascript 建设银行登陆键盘
Jun 10 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
vue移动端路由切换实例分析
May 14 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
微信小程序开发实现消息推送
Nov 18 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汉字转换拼音的函数代码
2015/12/30 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
幼儿教师研修感言
2014/02/12 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
社区服务活动总结
2014/05/07 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
家长会欢迎词
2015/01/23 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python