前端構建大法 Gulp 系列 (三):gulp的4個API 讓你成為gulp專家
系列目錄
-
前端構建大法 Gulp 系列 (四):gulp實戰
gulp 本身能做的事情非常少,主要是通過插件來提供各種功能,gulp本身只提供了4個非常簡潔的API, 掌握這4個API你就基本掌握了gulp的全部。
一、gulp.task
gulp 是基于task的方式來運行
定義
gulp.task(name [, deps, fn])注冊一個task, name 是task的名字,deps是可選項,就是這個task依賴的tasks, fn是task要執行的函數
示例
gulp.task('js', ,['jscs', 'jshint'], function(){ return gulp .src('./src/**/*.js') .pipe(concat('alljs')) .pipe(uglify()) .pipe(gulp.dest('./build/')); });
提示
上例中
- jscs和jshint先運行,隨后再運行js的task.
- jscs和jshint是并行執行的,而不是順序執行
二、gulp.src
定義
gulp.src(globs[, options])
與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.js
提示
如果我們需要文件保持順序,那么出現在前面的文件就寫在數組的前面
gulp.src(['client/baby.js', 'client/b*.js', 'client/c.js'])
上面baby.js就出現在最上面。
三、 gulp.dest
定義
gulp.dest(path[, options]) 就是最終文件要輸出的路徑,options一般不用
四、gulp.watch
定義
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了。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!