用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 相关文章推荐
javascript 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
May 30 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
JS中cookie的使用及缺点讲解
May 13 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
vue2.0 路由不显示router-view的解决方法
Mar 06 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 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
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
JavaScript定义类的几种方式总结
2014/01/06 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
详解在Python和IPython中使用Docker
2015/04/28 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
对Python _取log的几种方式小结
2019/07/25 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
手术室护士自我鉴定
2013/10/14 职场文书
高一家长会邀请函
2014/01/12 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android