用Webpack构建Vue项目的实践


Posted in Javascript onNovember 07, 2017

最近在内部项目中做了一些基于 vue + webpack 的尝试,在小范围和同事们探讨之后,还是蛮多同学认可和喜欢的,所以通过本篇文章分享给更多人

开始之前,需要安装node环境。(安装过程在此就不??铝耍?/p>

1、创建基本结构首先我们要创建一个空文件夹(我这里叫todos,你可以随便命名)作为项目的根目录。创建一个没有任何依赖关系的package.json,可以通过命令行 npm init 创建。

用Webpack构建Vue项目的实践

配置下基本信息即可。创建一个index.html文件,这个是显示在浏览器中的页面。

用Webpack构建Vue项目的实践

注意:1、这里的暂时并不存在;2、的数据会被vue文件填入。创建一个src文件夹,并在文件夹内新建一个main.js文件:

用Webpack构建Vue项目的实践

这样我们就完成了一个关于vuejs骨架,但是如何让他运行在浏览器中呢,这个时候我们就需要利用webpack打包成js文件了。

2、基本webpack构建创建一个webpack.config.js的文件:

用Webpack构建Vue项目的实践

在命令行中安装webpack:

用Webpack构建Vue项目的实践

安装本地库(作为dev dependencies),需要在package.js中添加devDependencies的部分:

用Webpack构建Vue项目的实践

保存后运行:npm install然后,vuejs库安装到你的dependencies中:

用Webpack构建Vue项目的实践

最后运行webpack进行打包:

用Webpack构建Vue项目的实践

3、vue-loader和.vue文件什么是vue-loader?vue-loader是webpack下loader插件,可以将.vue文件输出成组件。创建一个文件夹叫component,并在文件夹内新建一个app.vue文件,app.vue内容如下:

用Webpack构建Vue项目的实践

然后修改main.js的代码,如下:

用Webpack构建Vue项目的实践

重新运行一下,我们看到有报错了:

用Webpack构建Vue项目的实践webpack

不知道怎么去处理 .vue 的新语法。所以需要修改下webpack配置文件:

用Webpack构建Vue项目的实践

同时,在package.json加入一些库:

用Webpack构建Vue项目的实践

新加库以后,再重新npm install下载依赖包,然后重新打包一下:

用Webpack构建Vue项目的实践

重新刷新下浏览器就可以看到最新页面了。4、热模块替代/热更新热模块替代或热更新是当今最热门新的技术。它让你保存JavaScript文件,就把对应的组件实时更新。首先,我们需要用webpack的dev server。修改你的devDependencies在package.json.

用Webpack构建Vue项目的实践

然后再命令窗口中执行cnpm install。下载好依赖包后,再下载webpack-dev-server,执行命令行cnpm install -g webpack-dev-server,然后把脚本加入到package.json中

用Webpack构建Vue项目的实践

运行命令行 npm run dev:

用Webpack构建Vue项目的实践

这里看到有一大段内容,我们要运行http://localhost:8080/才能看到效果。在这里值得一提的是:之前我们在webpack.config.js里面是没有设置publicPath的,但是如果使用webpack-dev-server,你会发现,这个不会有更新。我们来试验一下:在package.json文件中,将publicPath注释掉:

用Webpack构建Vue项目的实践

app.vue代码如下:

用Webpack构建Vue项目的实践

输入命令npm run dev,在浏览器中显示:

用Webpack构建Vue项目的实践

当将页面修改成:

用Webpack构建Vue项目的实践

刷新浏览器,显示未变。此时,若将publicPath注释取消,重新再输入命令行,刷新浏览器,此时显示更新:

用Webpack构建Vue项目的实践

且不需要重新输命令行,修改代码后,都会更新。这个时候你会发现:如果我们修改的时template里面的html,这个时候,浏览器会秒变,并不需要刷新浏览器,比如:

用Webpack构建Vue项目的实践

用Webpack构建Vue项目的实践

但是如果你是将data数据更新,就必须要刷新下浏览器才行。(在这个地方我花了差不多快半个小时的时候才知道这个情况,我以为是我的代码写得有问题,才发现,原来更新template不需要刷新,而更新里面的data是需要刷新的。至于为什么,我也不知道。)

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

Javascript 相关文章推荐
js获取浏览器基本信息大全
Nov 27 Javascript
angular.bind使用心得
Oct 26 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
Oct 25 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 Javascript
JS异步执行结果获取的3种解决方式
Feb 19 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
vue中利用Promise封装jsonp并调取数据
Jun 18 Javascript
jQuery实现轮播图效果
Nov 26 jQuery
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 Javascript
vue双花括号的使用方法 附练习题
Nov 07 #Javascript
vue组件生命周期详解
Nov 07 #Javascript
Angular2的管道Pipe的使用方法
Nov 07 #Javascript
浅谈react 同构之样式直出
Nov 07 #Javascript
vue组件watch属性实例讲解
Nov 07 #Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 #Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 #Javascript
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
优化PHP代码的53条建议
2008/03/27 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
Yii清理缓存的方法
2016/01/06 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
ECMAScript6--解构
2017/03/30 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
python实现的防DDoS脚本
2011/02/08 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
公司业务主管岗位职责
2013/12/07 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
大三学习计划书范文
2014/05/02 职场文书
第二课堂活动总结
2014/05/07 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年人事科工作总结
2015/04/28 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js