gulp學習
說明:文章內容來源http://www.ydcss.com/archives/424,此處做引用學習。
1、gulp.src(globs[, options])
1.1、說明:src方法是指定需要處理的源文件的路徑,gulp借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成後一級的輸入,gulp.src返回當前文件流至可用插件;
1.2、globs: 需要處理的源文件匹配符路徑。類型(必填):String or StringArray;
通配符路徑匹配示例:
“src/a.js”:指定具體文件;
“*”:匹配所有文件 例:src/*.js(包含src下的所有js文件);
“**”:匹配0個或多個子文件夾 例:src/**/*.js(包含src的0個或多個子文件夾下的js文件);
“{}”:匹配多個屬性 例:src/{a,b}.js(包含a.js和b.js文件) src/*.{jpg,png,gif}(src下的所有jpg/png/gif文件);
“!”:排除文件 例:!src/a.js(不包含src下的a.js文件);
var gulp = require(‘gulp‘), less = require(‘gulp-less‘); gulp.task(‘testLess‘, function () { //gulp.src(‘less/test/style.less‘) gulp.src([‘less/**/*.less‘,‘!less/{extend,page}/*.less‘]) .pipe(less()) .pipe(gulp.dest(‘./css‘)); });
1.3、options: 類型(可選):Object,有3個屬性buffer、read、base;
options.buffer: 類型:Boolean 默認:true 設置為false,將返回file.content的流並且不緩沖文件,處理大文件時非常有用;
options.read: 類型:Boolean 默認:true 設置false,將不執行讀取文件操作,返回null;
options.base: 類型:String 設置輸出路徑以某個路徑的某個組成部分為基礎向後拼接,具體看下面示例
gulp.src(‘client/js/**/*.js‘) .pipe(minify()) .pipe(gulp.dest(‘build‘)); // Writes ‘build/somedir/somefile.js‘ gulp.src(‘client/js/**/*.js‘, { base: ‘client‘ }) .pipe(minify()) .pipe(gulp.dest(‘build‘)); // Writes ‘build/js/somedir/somefile.js‘
2、gulp.dest(path[, options])
2.1、說明:dest方法是指定處理完後文件輸出的路徑;
gulp.src(‘./client/templates/*.jade‘) .pipe(jade()) .pipe(gulp.dest(‘./build/templates‘)) .pipe(minify()) .pipe(gulp.dest(‘./build/minified_templates‘));
2.2、path: 類型(必填):String or Function 指定文件輸出路徑,或者定義函數返回文件輸出路徑亦可;
2.3、options: 類型(可選):Object,有2個屬性cwd、mode;
options.cwd: 類型:String 默認:process.cwd():前腳本的工作目錄的路徑 當文件輸出路徑為相對路徑將會用到;
options.mode: 類型:String 默認:0777 指定被創建文件夾的權限;
3、gulp.task(name[, deps], fn)
3.1、說明:task定義一個gulp任務;
3.2、name: 類型(必填):String 指定任務的名稱(不應該有空格);
3.3、deps: 類型(可選):StringArray,該任務依賴的任務(註意:被依賴的任務需要返回當前任務的事件流,請參看下面示例);
gulp.task(‘testLess‘, function () { return gulp.src([‘less/style.less‘]) .pipe(less()) .pipe(gulp.dest(‘./css‘)); }); gulp.task(‘minicss‘, [‘testLess‘], function () { //執行完testLess任務後再執行minicss任務 gulp.src([‘css/*.css‘]) .pipe(minifyCss()) .pipe(gulp.dest(‘./dist/css‘)); });
3.4、fn: 類型(必填):Function 該任務調用的插件操作;
4、gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb])
4.1、說明:watch方法是用於監聽文件變化,文件一修改就會執行指定的任務;
4.2、glob: 需要處理的源文件匹配符路徑。類型(必填):String or StringArray;
4.3、opts: 類型(可選):Object 具體參看https://github.com/shama/gaze;
4.4、tasks: 類型(必填):StringArray 需要執行的任務的名稱數組;
4.5、cb(event): 類型(可選):Function 每個文件變化執行的回調函數;
gulp.task(‘watch1‘, function () { gulp.watch(‘less/**/*.less‘, [‘testLess‘]); }); gulp.task(‘watch2‘, function () { gulp.watch(‘js/**/*.js‘, function (event) { console.log(‘File ‘ + event.path + ‘ was ‘ + event.type + ‘, running tasks...‘); }); });
gulp學習