1.Gulp5个基本方法:src、dest、task、run、watch
1.src
gulp模块的src方法,用于产生数据流。它的参数表示索要处理的文件,一般有以下几种形式:
js/app.js:指定确切的文件名
js/*.js:某个目录所有后缀为js的文件
js/**/*.js:某个目录及其所有子目录中的所有后缀为js的文件
!js/app.js:除了js/app.js以后的所有文件
*.+(js|css):匹配项目更目录下,所有后缀为js/css的文件
src方法的参数还可以是一个数组,用来指定多个成员:
gulp.src(['js/**/*.js','!js/**/*.min.js']);
2. Gulp.dest()
gulp模块的dest方法,可以用来传递文件,同时写入文件到指定目录。可以重复的发送传递给它的数据,因此可以将文件传送到多个目录中:
gulp.src('app/templates/*.jade')
.pipe(jade())
.pipe(gulp.dest('/dist/templates'))
.pipe(minify())
.pipe(gulp.dest('/dist/minified_templates'));
3. Gulp.task()
gulp模块的task方法,用于定义具体的任务。它的第一个参数是任务名,第二个参数是任务函数。如果一个任务名是default 则在执行gulp的时候就默认执行了。
举个栗子:
va rgulp = require('gulp');
var htmlmin = require('gulp-htmlmin');
gulp.task('minify',function(){ //minify为任务自定义名称
gulp.src('app/*.html')
.pipe(htmlmin({collapseWhitespace:true}))
.pipe(gulp.dest('dist'))
});
//执行 gulp-minify
4.Gulp.run()
gulp模块的run方法,表示要执行的任务。可能会使用单个参数的形式传递多个任务。
ps:任务是尽可能多的并行执行,并且可能不会按照指定的顺序执行。
gulp.run('scripts','copyfiles','builddocs');
gulp.run('scripts','copyfiles','builddocs',function(err){
//所有任务完成,或者出发错误而终止
});
可以使用gulp.run在其他任务中运行任务。也可以在默认任务(default)中使用gulp.run组织多个更小的任务为一个大任务。
5.Gulp.watch()
gulp模块的watch方法,用于指定需要监视的文件。一旦这些文件发生变动,就运行指定任务:
gulp.task('watch',function(){
gulp.watch(''app/*.html'',['minify']);
//上面代码指定,一旦app目录下后缀为.html的文件发生变化,就运行minify任务。
})