1. 程式人生 > >本地構建:Gulp

本地構建:Gulp

Gulp中文網:https://www.gulpjs.com.cn/

Gulp英文網:https://gulpjs.com/

Gulp:工作流程自動化+強化

(一)安裝初始化

 

(二)基礎API及外掛

①gulp.src(globs[, options]);//輸出(Emits)符合所提供的匹配模式(glob)或者匹配模式的陣列(array of globs)的檔案。它可以被 piped 到別的外掛中

gulp.src('client/js/**/*.js', { base: 'client' })// 匹配 'client/js/somedir/somefile.js' 並且將 `base` 解析為 `client/js/`
.pipe(minify()) .pipe(gulp.dest('build')); // 寫入 'build/js/somedir/somefile.js'
  • glob:
    • *匹配任意個字元
    • ?匹配1個字元
    • [...]匹配範圍內字元
    • !(pattern1|pattern2)匹配相反
    • ?(pattern1|pattern2)匹配0個或1個
    • +(pattern1|pattern2)匹配1個或多個
    • *(a|b|c)匹配任意個
    • @(pattern|pat*|pat?erN)匹配特定一個
    • **匹配任意層

 

②gulp.dest(path[, options]);//能被 pipe 進來,並且將會寫檔案。並且重新輸出(emits)所有資料,你可以將它 pipe 到多個資料夾。如果某資料夾不存在,將會自動建立它

③gulp.task(name[, deps], fn);//定義一個任務

gulp.task('mytask', ['array', 'of', 'task', 'names'], function() {
  // 做一些事
  //[,deps]一個包含任務列表的陣列,這些任務會在你當前任務執行之前完成
});

④gulp.watch(glob[, opts, cb]);

//檔案變了直接執行(監聽)

gulp.watch('js/**/*.js', function(event) {
  console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');//cb(events)callback
});

require('del');del.sync('xxx');//刪檔案

⑥require('gulp-autoprefixer');gulp-autoprefixer;//幫忙自動加字首

⑦require('gulp-clean-css');gulp-clean-css;//壓縮css