用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代码(站点及虚拟目录)
Oct 20 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
javascript作用域链与执行环境详解
Mar 25 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
vue实现element-ui对话框可拖拽功能
Aug 17 Javascript
JavaScript中创建原子的方法总结
Aug 26 Javascript
node.js环境搭建图文详解
Sep 19 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
three.js 如何制作魔方
Jul 31 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删除数组中特定元素的两种方法
2013/07/02 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
php自动加载代码实例详解
2021/02/26 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
Python入门篇之面向对象
2014/10/20 Python
Python中super关键字用法实例分析
2015/05/28 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
简单了解python协程的相关知识
2019/08/31 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
三峡大坝导游词
2015/01/31 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书