Gulp livereload

  平時使用yeoman做爲前端部署工具,感受到yeoman構建工具雖然方便,可是速度和大小老是不盡人意。javascript

  最近看到了gulp http://gulpjs.com/ 比較感興趣隨動手一試css

  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插件配合使用以爲比較麻煩,畢竟不是全部的同窗都能出牆的,html

  個人作法是使用gulp-connect https://www.npmjs.com/package/gulp-connect,前端

  首先 java

npm install gulp-connect --save-dev

  安裝好以後,配置服務器android

  

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

  註冊刷新頁面任務ios

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

  監聽事件git

// Watch
gulp.task('watch', function() {
	//監聽生產環境目錄變化
  	gulp.watch(path.src + '**/*.*',['reload-dev']);
})

  設置默認任務github

//測試服務器
gulp.task('default', ['connectDev', 'watch']);

  只要在對應的目錄下運行glup 即可以監聽全部文件動態刷新頁面,不再用F5了chrome

  下面附上個人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

相關文章
相關標籤/搜索