参考: 1. gulp的api 2. gulp的常用插件 3. gulp的知识汇总
异步任务的支持
接受一个回调callback()
// 在 shell 中执行一个命令 var exec = require('child_process').exec; gulp.task('jekyll', function(cb) { // 编译 Jekyll exec('jekyll build', function(err) { if (err) return cb(err); // 返回 error cb(); // 完成 task }); });返回stream?
gulp.task('somename', function() { var stream = gulp.src('client/**/*.js') .pipe(minify()) .pipe(gulp.dest('build')); return stream; });返回promise?
var Q = require('q'); gulp.task('somename', function() { var deferred = Q.defer(); // 执行异步的操作 setTimeout(function() { deferred.resolve(); }, 1); return deferred.promise; });案例:
gulp.task('two',['one'],function(){ }) //two 依赖与one的执行完成注意的是:one 任务定义的时候需要在结束的时候返回一个回调,或者promise,或者stream
gulp-uglify:压缩js文件
gulp.src(['./assets/apps/scripts/*.js','!./assets/apps/scripts/*.min.js']) .pipe(uglify()) .pipe(rename({suffix: '.min'})) .pipe(gulp.dest('./html')); //*** HTML formatter task gulp.task('prettify', function() { gulp.src('./**/*.html') .pipe(prettify({ indent_size: 4, indent_inner_html: true, unformatted: ['pre', 'code'] })) .pipe(gulp.dest('./')); }); ```gulp-sass:预编译sass 文件
如上图: 1. uglify()进行了js 的压缩 2. !!./assets/apps/scripts/*.min.js忽视了已经压缩过的js 文件。 3. rename()进行了重命名 4. .pip(sass()) 方法预编译sass文件 5. gulp-prettify :格式化代码
转载于:https://www.cnblogs.com/enicz/p/gulp-de-ji-chu-yu-fa.html