gulp 自己能作的事情很是少,主要是经过插件来提供各类功能,gulp自己只提供了4个很是简洁的API, 掌握这4个API你就基本掌握了gulp的所有。git
gulp 是基于task的方式来运行github
gulp.task(name [, deps, fn])
注册一个task, name 是task的名字,deps是可选项,就是这个task依赖的tasks, fn是task要执行的函数gulp
gulp.task('js', ,['jscs', 'jshint'], function(){ return gulp .src('./src/**/*.js') .pipe(concat('alljs')) .pipe(uglify()) .pipe(gulp.dest('./build/')); });
上例中数组
gulp.src(globs[, options])less
与globs 匹配的文件,能够是string或者一个数组函数
gulp.src(['client/*.js', '!client/b*.js', 'client/c.js']) # !是排除某些文件 gulp.task('js',['jscs', 'jshint'],function(){ return gulp .src('./src/**/*.js', {base:'./src/'}) .pipe(uglify()) .pipe(gulp.dest('./build/')); });
options.base 是指多少路径被保留,好比上面的 ./src/users/list.js 会被输出到 ./build/users/list.jsui
若是咱们须要文件保持顺序,那么出如今前面的文件就写在数组的前面spa
gulp.src(['client/baby.js', 'client/b*.js', 'client/c.js'])
上面baby.js就出如今最上面。插件
gulp.dest(path[, options]) 就是最终文件要输出的路径,options通常不用code
gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb]) 就是监视文件的变化,而后运行指定的Tasks或者函数,这个相比Grunt须要使用插件,gulp自己就支持的很好。
gulp.task('watch-js', function(){ gulp.watch('./src/**/*.js',['jshint','jscs']); }); gulp.task('watch-less', function(){ gulp.watch('./src/**/*.less',function(event){ console.log('less event'+event.type+' '+event.path) }); });
gulp就是如此的简单,你只须要掌握这四个API就够了,剩下的就是熟悉相关的plugin了。