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的手机端多页面应用 ...
随机推荐
- json生成方式
<script type="text/javascript"> //初始化需要json化的参数 var data = { No: No, Type: Type }; / ...
- Redis 学习笔记-应用场景
Redis作缓存系统 Redis可以对每个键设置生存时间 可以限定数据占用的最大内存空间,在数据达到空间限制后可以按照一定规则自动淘汰不需要的键. 设置方法: 修改配置文件的maxmemory参数,限 ...
- Linux系统LVM基本使用
一.关于LVM的几个概念 1. LVM:逻辑卷管理器,是建立在物理存储设备上的一个抽象层,允许你生成逻辑存储卷, 与硬件相关的存储设置被其隐藏,你不用停止应用或卸载文件系统来调整卷大小 或迁移数据,可 ...
- 关于docker使用的几个小问题(二)
很久没写博客了,集中写几个比较有意思的小问题. 一.CentOS容器没有service命令 这是因为我们从docker官方镜像仓库中pull的最新CentOS镜像都是centos7.4 Redhat- ...
- oracle数据库无监听程序
在电脑---服务---启动oracle tns 如果还是出现错误的话,找到Net Manager,将网络的ip监听删除,将本机的主机名配好,即可打开tns服务
- swift之函数式编程(四)
文章内容来自<Functional Programing in Swift>,具体内容请到书中查阅 Map, Filter, Reduce Functions that take func ...
- bug:翻页
本章主要分享下,个人测试经历中遇见过的翻页bug 一.列表翻页 1.bug1:去请求翻页page=0,从0页开始算.一般来说page=0 和 page=1的数据是一模一样,所以翻第2页时会发现和第1页 ...
- 基于Spring、SpringMVC、MyBatis、Druid、Shrio构建web系统
源码下载地址:https://github.com/shuaijunlan/Autumn-Framework 在线Demo:http://autumn.shuaijunlan.cn 项目介绍 Autu ...
- VS2012环境下C#调用C++生成的DLL
1.VS2012 C++生成DLL 这个过程仿照http://www.cnblogs.com/LCCRNblog/p/3625200.html创建DLL即可,暂时不用创建测试工程,因为下面有测试工程的 ...
- 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4298 Solved: 1944[Submit][Sta ...