平时使用yeoman作为前端部署工具,感觉到yeoman构建工具虽然方便,但是速度和大小总是不尽人意。

  最近看到了gulp http://gulpjs.com/ 比较感兴趣随动手一试

  gulp的安装以及一些基本的用法github上已经说的很多了,在这里主要说一下关于livereload 的使用,看到特首的日志里(http://markpop.github.io/2014/09/17/Gulp%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/)说到使用chrome的livereliad插件配合使用觉得比较麻烦,毕竟不是所有的同学都能出墙的,

  我的做法是使用gulp-connect https://www.npmjs.com/package/gulp-connect,

  首先

npm install gulp-connect --save-dev

  安装好之后,配置服务器

  

//server
gulp.task('connectDev', function() {
connect.server({
root: path.src,
port: 8000,
livereload: true
});
});

  注册刷新页面任务

//reload server
gulp.task('reload-dev',['scripts','styles','images'],function() {
gulp.src(path.src + '**/*.*')
.pipe(connect.reload());
});

  监听事件

// Watch
gulp.task('watch', function() {
//监听生产环境目录变化
gulp.watch(path.src + '**/*.*',['reload-dev']);
})

  设置默认任务

//测试服务器
gulp.task('default', ['connectDev', 'watch']);

  只要在对应的目录下运行glup 便可以监听所有文件动态刷新页面,再也不用F5了

  下面附上我的gulpfile.js,大家分享下

/* gulpfile demo1  author:csy*/
var gulp = require("gulp"),
sass = require("gulp-ruby-sass"), //sass编译
cache = require("gulp-cache"), //图片缓存,只有图片替换了才压缩
uglify = require("gulp-uglify"), //js压缩
concat = require("gulp-concat"), //文件合并
mincss = require("gulp-minify-css"), //css压缩
minimg = require("gulp-imagemin"), //图片压缩
rename = require("gulp-rename"), //重命名
notify = require("gulp-notify"), //消息通知
jshint = require("gulp-jshint"), //js格式检查
autoprefixer = require("gulp-autoprefixer"), //自动补全css前缀
livereload = require("gulp-livereload"), //自动刷新
del = require("del"), //清空数据
connect = require('gulp-connect'); //WEB测试服务器
/* 设置路径 */
var path = {
src : "src/",
css : "src/styles/",
js : "src/scripts/",
scss : "src/scss/",
img : "src/images/",
build : "build"
} /* 编译scss 自动补全前缀 */
gulp.task('styles', function(){
return sass(path.scss + 'main.scss', { style: 'expanded' })
.pipe(autoprefixer({browsers: ['last 2 versions', 'safari 5', 'opera 12.1', 'ios 6', 'android 4']}))
.pipe(gulp.dest(path.css))
.pipe(rename({suffix: '.min'}))
.pipe(mincss())
.pipe(gulp.dest(path.build + '/styles'))
.pipe(notify({ message : 'Styles task complete'}));
}) /* 操作js */
gulp.task('scripts', function(){
return gulp.src(path.js + "**/*.js")
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat('main.js'))
.pipe(gulp.dest(path.build + '/scripts'))
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest(path.build +'/scripts'))
.pipe(notify({message : 'Scripts task complete'}))
}) /* 压缩图片 */
gulp.task('images', function(){
return gulp.src(path.img + "**/*")
.pipe(minimg({optimizationLevel: 3, progressive: true, interlaced: true}))
.pipe(gulp.dest(path.build + '/images'))
.pipe(notify({message : 'Images task complete'}))
})
// 移动html
gulp.task('html', function(){
return gulp.src(path.src + "*.html")
.pipe(gulp.dest(path.build))
.pipe(notify({message : 'Html task complete'}))
}) // Clean
gulp.task('clean', function(cb) {
del(['build/styles', 'build/scripts', 'build/images'], cb)
}); //测试服务器
gulp.task('default', ['connectDev', 'watch']); //server
gulp.task('connectDev', function() {
connect.server({
root: path.src,
port: 8000,
livereload: true
});
}); //reload server
gulp.task('reload-dev',['scripts','styles','images'],function() {
gulp.src(path.src + '**/*.*')
.pipe(connect.reload());
});
// Watch
gulp.task('watch', function() {
//监听生产环境目录变化
gulp.watch(path.src + '**/*.*',['reload-dev']);
}) // 生成发布版本
gulp.task('build', ['clean'], function(){
gulp.start('styles', 'scripts', 'images', 'html');
})

  最后,想出墙的同学可以戳 http://honx.in/i/VOwbA4IaAx5FsDXn

 

Gulp livereload的更多相关文章

  1. 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。

    本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...

  2. gulp LiveReload middleware

    用yo搭建的angular项目,用gulp自动化构建. 自动化构建主要的功能大致有: 1. 文件压缩 2. 文件重命名 3. 文件合并 4. css,js文件自动引入到html 5. 自动刷新 ... ...

  3. 前端神器!!gulp livereload实现浏览器自动刷新

    首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...

  4. 利用gulp搭建本地服务器,并能模拟ajax

    工作中可能会用到的小工具,在此记录一下.可以实现的功能有: 本地http服务器 页面实时刷新 可以模拟ajax请求 第一步,新建package.json文件.用到了gulp.gulp-webserve ...

  5. gulp ---攻略一

    根据项目需要可能会出连载 项目需要现在用gulp进行js的质量检测.合并.压缩.发布,未来需要进行sass的编译.合并.压缩,html.img的压缩以及md5戳.reload等功能,暂时先测试js的质 ...

  6. livereload使用方法

    搞这个自动刷新的插件搞了好几个小时了还没搞明白,快被气死了,想改用browser-sync结果npm又一直转啊转一直卡死. 刚才终于神奇地搞定了,结果发现还是我自己智商太低...大概的经过是这样的.. ...

  7. 应用gulp工具构建个自动算rem布局的小例子

    因为最近可能需要做移动端rem布局,因为rem布局需要将px转化成rem,如果次都需要拿计算器算就太low了,所以就想到用less和gulp. 因为也是初学gulp,站点的文件结构还没想到太好,也只是 ...

  8. 刷新拜拜~gulp-livereload

    早就想要自动自动自动刷新了啊,曾经用grunt实现过,但是是yeoman建好的..其中很多任务我是用不到的啊,为了干净还是得要自己写啊哈哈(现在我只想要自动刷新). 首先node是必须的了-就不说怎么 ...

  9. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

随机推荐

  1. ListView如何优化

    1.ListView 如何提高其效率? 当 convertView 为空时,用 setTag()方法为每个 View 绑定一个存放控件的ViewHolder 对象. 当 convertView 不为空 ...

  2. 用Eclipse 搭建一个Maven Spring SpringMVC 项目

    1: 先创建一个maven web  项目: 可以参照之前的文章:  用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven  修改pom.xml & ...

  3. NOR和NAND

    NOR和NAND NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,198? ...

  4. 【NOIP模拟】的士碰撞(二分答案)

    Description

  5. 关于keyTyped

    蠢了,重写keyTyped方法时候拿keyCode去做比较....记一下....VK_UNDEFiEND.......

  6. Linux系列教程(七)——Linux帮助和用户管理命令

    上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...

  7. 使用 Hadoop 进行语料处理(面试题)

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7751741.html ------------------------------------ ...

  8. SQL查询一个表里面某个字段值相同的数据记录

    好长时间没有用SQL了...还停留在学生时代的水平... 转: 昨天遇到个面试题:查询一个表里面某个字段值相同的数据记录,好久没有写过这种,还真的花了点时间才写出来.如表g_carddetail,有 ...

  9. IntelliJ IDEA创建多模块依赖项目

    刚从Eclipse转IDEA, 所以记录一下IDEA的使用 创建多模块依赖项目 1. 新建父工程 这样就创建好了一个普通项目,一般我们会把src删掉,在此项目下新建新的模块 2. 新建子模块 创建供前 ...

  10. VPS搭建离线下载服务器——后网盘时代

    动机 由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦).但是呢,就算用作梯子,一个月1T的流量总是用不完.最经觉得自己营养充足,想找点电影看看. 无奈现在百度网盘的速度真的 ...