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

 

时间: 2024-10-14 22:26:45

Gulp livereload的相关文章

基于Nodejs的Gulp LiveReload与VisualStudio完美结合。

本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我.学习这篇文章,你不需要任何nodejs基础,当然你有的话就更顺利了.园子里有很多全栈或者是前端后台数据库都有需要你发光发热的人.也许你很喜欢做着这样的事儿,也许你不喜欢但是难以逃脱这样的安排.但是,无论你是前端,还是后端,还是全栈,好的工具和方法总是很重要的.当你在VS里写前端页面时,一遍又一遍的

livereload使用方法

搞这个自动刷新的插件搞了好几个小时了还没搞明白,快被气死了,想改用browser-sync结果npm又一直转啊转一直卡死. 刚才终于神奇地搞定了,结果发现还是我自己智商太低...大概的经过是这样的... 首先如果你没装node/npm/gulp/livereload就别玩了,这个东西离你还很遥远,你甚至要花一些时间去了解这些东西是什么鬼. 然后你还得下载一个livereload的chrome插件,作为chrome的扩张程序用的,把名字贴上来,“chromein.com_ext_11631.crx

gulp 插件之 gulp-livereload

gulp-livereload 的简介: gulp-livereload 插件用于实时重载,当 html,css 文件内容发生改变时,浏览器会自动刷新页面.在使用 gulp-livereload 插件时需要浏览器安装相应的 liveReload 插件(浏览器插件) 一.gulp-livereload 插件的使用 1.全局安装 http-server 模块命令(用于提供 web 服务) npm install -g http-server 2.安装 "gulp-livereload"插件

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

工作中可能会用到的小工具,在此记录一下.可以实现的功能有: 本地http服务器 页面实时刷新 可以模拟ajax请求 第一步,新建package.json文件.用到了gulp.gulp-webserver.gulp-livereload package.json的内容如下: { "name": "localserver", "version": "1.0.0", "description": "&q

刷新拜拜~gulp-livereload

早就想要自动自动自动刷新了啊,曾经用grunt实现过,但是是yeoman建好的..其中很多任务我是用不到的啊,为了干净还是得要自己写啊哈哈(现在我只想要自动刷新). 首先node是必须的了-就不说怎么装了. 然后先建好文件夹,安装gulp和gulp-livereload,执行: cnpm install gulp gulp-livereload 以上用了淘宝镜像,也可以用npm安装,只是个demo,没有package.json,然后创建gulpfile.js,如下: var gulp = req

gulp教程(sass,livereload,md5,css压缩,js压缩,img的base64)

环境 node -v  v6.10.3 npm -v  3.10.10 package.json如下: { "name": "zhcsdata", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": &

自动化构建工具gulp简单介绍及使用

一.简介及安装: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率 gulp的优点:基于流的操作.任务化. 常用api:src .dest.watch.task.pipe 由于gulp是基于node的所以使用的时候需要通过npm或者cnpm安装全局安装(cnpm i -g gulp) 常用的gulp需要安装的包括gulp-cl

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

gulp安装及配置

1gulp安装 安装gulp,我一般会选择局部安装 cmd窗口,cd到你的项目路径,然后键入以下代码 npm install gulp --save-dev 2选择gulp组件 前端项目需要的功能:1.图片(压缩图片支持jpg.png.gif)2.样式 (支持sass 同时支持合并.压缩.重命名)3.javascript (检查.合并.压缩.重命名)4.html (压缩)5.客户端同步刷新显示修改6.构建项目前清除发布环境下的文件(保持发布环境的清洁) 通过gulp plugins,寻找对于的g