Gulp livereload
平时使用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的更多相关文章
- 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。
本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...
- gulp LiveReload middleware
用yo搭建的angular项目,用gulp自动化构建. 自动化构建主要的功能大致有: 1. 文件压缩 2. 文件重命名 3. 文件合并 4. css,js文件自动引入到html 5. 自动刷新 ... ...
- 前端神器!!gulp livereload实现浏览器自动刷新
首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...
- 利用gulp搭建本地服务器,并能模拟ajax
工作中可能会用到的小工具,在此记录一下.可以实现的功能有: 本地http服务器 页面实时刷新 可以模拟ajax请求 第一步,新建package.json文件.用到了gulp.gulp-webserve ...
- gulp ---攻略一
根据项目需要可能会出连载 项目需要现在用gulp进行js的质量检测.合并.压缩.发布,未来需要进行sass的编译.合并.压缩,html.img的压缩以及md5戳.reload等功能,暂时先测试js的质 ...
- livereload使用方法
搞这个自动刷新的插件搞了好几个小时了还没搞明白,快被气死了,想改用browser-sync结果npm又一直转啊转一直卡死. 刚才终于神奇地搞定了,结果发现还是我自己智商太低...大概的经过是这样的.. ...
- 应用gulp工具构建个自动算rem布局的小例子
因为最近可能需要做移动端rem布局,因为rem布局需要将px转化成rem,如果次都需要拿计算器算就太low了,所以就想到用less和gulp. 因为也是初学gulp,站点的文件结构还没想到太好,也只是 ...
- 刷新拜拜~gulp-livereload
早就想要自动自动自动刷新了啊,曾经用grunt实现过,但是是yeoman建好的..其中很多任务我是用不到的啊,为了干净还是得要自己写啊哈哈(现在我只想要自动刷新). 首先node是必须的了-就不说怎么 ...
- Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...
随机推荐
- ListView如何优化
1.ListView 如何提高其效率? 当 convertView 为空时,用 setTag()方法为每个 View 绑定一个存放控件的ViewHolder 对象. 当 convertView 不为空 ...
- 用Eclipse 搭建一个Maven Spring SpringMVC 项目
1: 先创建一个maven web 项目: 可以参照之前的文章: 用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven 修改pom.xml & ...
- NOR和NAND
NOR和NAND NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,198? ...
- 【NOIP模拟】的士碰撞(二分答案)
Description
- 关于keyTyped
蠢了,重写keyTyped方法时候拿keyCode去做比较....记一下....VK_UNDEFiEND.......
- Linux系列教程(七)——Linux帮助和用户管理命令
上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...
- 使用 Hadoop 进行语料处理(面试题)
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7751741.html ------------------------------------ ...
- SQL查询一个表里面某个字段值相同的数据记录
好长时间没有用SQL了...还停留在学生时代的水平... 转: 昨天遇到个面试题:查询一个表里面某个字段值相同的数据记录,好久没有写过这种,还真的花了点时间才写出来.如表g_carddetail,有 ...
- IntelliJ IDEA创建多模块依赖项目
刚从Eclipse转IDEA, 所以记录一下IDEA的使用 创建多模块依赖项目 1. 新建父工程 这样就创建好了一个普通项目,一般我们会把src删掉,在此项目下新建新的模块 2. 新建子模块 创建供前 ...
- VPS搭建离线下载服务器——后网盘时代
动机 由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦).但是呢,就算用作梯子,一个月1T的流量总是用不完.最经觉得自己营养充足,想找点电影看看. 无奈现在百度网盘的速度真的 ...