vue + webpack + gulp 简单环境 搭建
一、物料准备
废话不多说,直接上 package.json
{
"name": "vwp",
"version": "1.0.0",
"description": "vue test",
"main": "index.js",
"dependencies": {
"vue": "^1.0.26",
"vue-router": "^0.7.13"
},
"devDependencies": {
"babel-core": "^6.3.17",
"babel-eslint": "^6.1.2",
"babel-loader": "^6.2.0",
"babel-plugin-transform-runtime": "^6.3.13",
"babel-preset-es2015": "^6.3.13",
"babel-runtime": "^5.8.34",
"css-loader": "^0.23.0",
"eslint": "^3.5.0",
"eslint-loader": "^1.5.0",
"express": "^4.14.0",
"gulp": "^3.9.1",
"gulp-clean": "^0.3.2",
"gulp-connect": "^5.0.0",
"gulp-prefix": "0.0.15",
"gulp-rev": "^7.1.2",
"gulp-rev-collector": "^1.0.5",
"gulp-webpack": "^1.5.0",
"vinyl-named": "^1.1.0",
"vue-hot-reload-api": "^1.2.2",
"vue-html-loader": "^1.0.0",
"vue-loader": "^7.2.0",
"vue-style-loader": "^1.0.0",
"webpack": "^1.13.2",
"webpack-stream": "^3.2.0"
}
}
这里在选择开发服务器上并没有选择webpack-dev-server,因为其热替换和自动刷新和vue组件配合的不太友好,且不能自动刷新,所以选用gulp connect作为研发服务器。
二、webpack文件配置
本文中的代码文档结构如下:

其中:build文件用来保存编译完毕的主入口文件
src文件为原始目录
components 为vue组件目录
然后再看config文件
// nodejs 中的path模块
var path = require('path');
module.exports = {
resolve:{
extensions: ['', '.js', '.vue'],
alias:{
components:path.join(__dirname,"./components")
}
},
module: {
loaders: [
{test: /\.vue$/,loader: 'vue',exclude: /node_modules/},
{test:/\.js?$/,loaders:['babel','eslint'],exclude: /node_modules/},
]
}
};
VUE搭配webpack比react清爽不少,这里没有entry和output,因为这两个文件的出入口被放到gulp中去处理
下面是gulpfile.js文件:
var gulp=require("gulp");
//这里用到了webpack-stream 而不是webpack
var webpack=require("webpack-stream");
var vinylName=require("vinyl-named");
var connect=require("gulp-connect");
var webpackConfig=require("./webpack.config.js");
//添加MD5戳
var rev=require("gulp-rev");
//替换原始文件中的js引用
var revCollect=require("gulp-rev-collector");
var clean=require("gulp-clean");
//路径配置
var path={
dev:{
html:"./src",
js:"./src/js",
component:"./components"
},
clean:"./build"
};
//清理
gulp.task("clean",function(){
return gulp.src(path.clean+"/*.*")
.pipe(clean());
});
//启用webpack,依赖clean
gulp.task("webpack",["clean"],function(){
return gulp.src("./src/js/index.js")
.pipe(vinylName())
.pipe(webpack(webpackConfig))
.pipe(rev())
.pipe(gulp.dest("./build"))
.pipe(rev.manifest())
.pipe(gulp.dest("./build"));
});
//更新html中旧的js引用
gulp.task("rev",["webpack"],function(){
return gulp.src(["./build/*.json",path.dev.html+"/index.html"])
.pipe(revCollect())
.pipe(gulp.dest("./"));
});
//创建服务器
gulp.task("connect",function(){
connect.server({
root:"./",
livereload:true
});
});
//reload操作
gulp.task("reload",["rev"],function(){
gulp.src(path.dev.js+"/*.js").pipe(connect.reload());
gulp.src(path.dev.html+"./index.html").pipe(connect.reload());
gulp.src(path.dev.component+"./**.vue").pipe(connect.reload());
});
//watch js html 组件 三者的改变 起到自动刷新的作用
gulp.task("watch",function(){
gulp.watch(path.dev.js+"/*.js",["rev","reload"]);
gulp.watch(path.dev.html+"/index.html",["rev","reload"]);
gulp.watch(path.dev.component+"/*.vue",["webpack","rev","reload"]);
});
gulp.task("default",["webpack","connect","rev","watch"]);
这里的gulp管理文件是简版的,因为今天才开始接触gulp,所以里面有很多功能不完善,比如代码压缩、css image处理、资源拆分、css js注入等等一系列功能都还没加,见谅
不过其基本功能已实现,做vue学习性开发环境够用了
vue + webpack + gulp 简单环境 搭建的更多相关文章
- windows下vue+webpack前端开发环境搭建及nginx部署
一.开发环境搭建 1.前端框架一般都依赖nodejs,我们首先要安装node.js.请参考http://www.cnblogs.com/wuac/p/6381819.html. 2.由于许多npm的源 ...
- Windows 环境下vue+webpack前端开发环境搭建
一.开发环境搭建 1.前端框架一般依赖node.js,我们首先要安装node.js. 2.由于许多npm 的源都在国外的地址,安装起来特别慢,所以我们这里利用淘宝的镜像服务器. 安装命令为:npm i ...
- 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建)
黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...
- Dubbo学习之简单环境搭建
Dubbo服务的发展和作用: 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程. 其次,当服务越来越多之后,我们需要做哪些服务治理? 最后,是d ...
- Dubbo简单环境搭建
Dubbo服务的发展和作用: 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程. 其次,当服务越来越多之后,我们需要做哪些服务治理? 最后,是d ...
- vue前端+java后端 vue + vuex + koa2开发环境搭建及示例开发
vue + vuex + koa2开发环境搭建及示例开发 https://segmentfault.com/a/1190000012918518 vue前端+java后端 https://blog.c ...
- windows环境下搭建vue+webpack的开发环境
前段时间一直在断断续续的看vue的官方文档,后来就慢慢的学习搭建vue的开发环境,已经有将近两周了,每到最后一步的时候就会报错,搞的我好郁闷,搁置了好几天,今天又接着搞vue的开发环境,终于成功了.我 ...
- 使用ES6+Vue+webpack+gulp构建新一代Web应用
1.推荐学习网站:Vue.js中国 2.Demo环境搭建: 2.1环境配置 安装nodejs环境,具体内容可以百度: 新建一个文件夹: mkdir VUE-ES6-WebPack 全局安装gulp: ...
- Vue框架简介和环境搭建
前言: 此篇随笔为个人学习前端框架Vue,js的技术笔记,主要记录一些自己在学习Vue框架的心得体会和技术总结,作为回顾和笔记使用. 这种写博客的方式,对刚开始学习Vue框架的我,也是一种激励,我相信 ...
随机推荐
- Android之 GPS学习笔记
========================================GPS:全球定位系统 GPS由三部分组成:GPS卫星组成的空间部分,若干地面组成的控制站,用户手中的接收机.Androi ...
- RDL/RDLC批量单据打印
使用RDL或RDLC进行单据打印时,单张单据打印比较直观简单,无需说明.下面我们来谈一下批量单据打印的实现方法.以下以RDL的ReportBuilder设计环境为例进行讲解,RDLC.VS设计环境同理 ...
- 使用ZSetOperations(有序)操作redis
方法 c参数 s说明 Boolean add(K key, V value, double score); K key:集合key V value:key对应的值 double score:分数 向 ...
- ubuntu中执行truffle build出现问题
进行build之前,采用默认构建器方式创建客户端,先安装默认构建器: npm install truffle-default-builder --save 然后需要修改truffle.js配置文件如下 ...
- python类学习以及mro--多继承属性查找机制
版权声明:本文为博主原创文章,未经博主允许不得转载. 还记得什么是新式类和旧式类吗? Python中,一个class继承于object,或其bases class里面任意一个继承于object,这个c ...
- chromium源码阅读--图片处理
JavaScript 图像替换 JavaScript 图像替换技术检查设备能力,然后“做正确的事”. 您可以通过 window.devicePixelRatio 确定设备像素比,获取屏幕的宽度和高度, ...
- JAVA课程设计——植物大战僵尸(团队)
1.团队名称.团队成员介绍 团名:嗷嗷嗷嗷嗷 吴军霖(组长) 写得一手好代码也改得一手好bug 代码整洁好看源于强迫症 大概没有什么不会的东西叭 真正的王者段位 欧阳震霆(组员) 同样擅长写代码 在青 ...
- JavaScript中常用转义字符
\b 退格 \f 换页 \r 回车 \n 换行 \" 双引号 \' 单引号 \t Tab字符 \\ 反斜杠 \xnn 十六进制代码nn表示的字符 \unnnn 十 ...
- 整理base.css,重设浏览器样式
有的时候,可以把自己经常写的代码整理一下,分文别类,用的时候,拿过来直接用就可以了,可以节约很多时间,提高工作效率.所以,每个人都要有自己的代码库.点击下载 /* * @Author: liubeim ...
- CSS兼容性总结
一.针对IE6的 !important 必须写在前面,例如: background:#9C6 !important;background:#999; 二.CSS HACK //IE6 专用 _heig ...