平时使用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. RabbitMQ 笔记-RPC

    RabbitMQ中实现RPC的机制是: 客户端发送请求(消息)时,在消息的属性(MessageProperties,在AMQP协议中定义了14中properties,这些属性会随着消息一起发送)中设置 ...

  2. javascript编写一个简单的编译器(理解抽象语法树AST)

    javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...

  3. 教你用SVG画出一条龙

    先看demo,九十七度 其实使用svg画出这条龙很简单,关键不在于怎么使用svg,而在于你的美术功底,哈哈. 好吧,当然基础是不能忽略的,先看下这条龙的代码: <svg id="lon ...

  4. IntentService学习

    IntentService是一个Service,主要就是Service和HandlerThread的结合 一.使用 不用多说和使用Service差不多,但是比Service多个一个方法实现: publ ...

  5. C语言学习(记录)【内存相关_1:内存基础】

    本学习是基于嵌入式的C语言学习记录(课程内容来源于某位老师的网络课程,为了证明不是在打广告,就不写出老师的名字了,感谢.) -------------------------------------- ...

  6. HDU 2665 Kth number(划分树)

    Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  7. You can Solve a Geometry Problem too(判断两线段是否相交)

    You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3 ...

  8. jumpserver安装详解

    环境说明 主机为最小 安装的centos6.9 x86_64. [root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [ro ...

  9. Android 开发笔记___textvieww__跑马灯效果

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  10. Problem D: 栈小游戏

    #include <iostream> #include <vector> #include <stack> #include <algorithm> ...