安装说明 $ npm install --save-dev gulp-autoprefixer(插件名称,可以接多个,空格)
 
gulp-autoprefixer(自动补 hack) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var  gulp = require ('gulp' )var  autoprefixer = require ('gulp-autoprefixer' )gulp.task('default' , function ( )  {   return  gulp     .src('src/app.css' )     .pipe(       autoprefixer({         browsers: ['last 2 versions' ],          cascade: false         })     )     .pipe(gulp.dest('dist' )) }) 
 
gulp-uglify(压缩) 1 2 3 4 5 6 7 8 var  uglify = require ('gulp-uglify' )gulp.task('compress' , function ( )  {   return  gulp     .src('lib/*.js' )     .pipe(uglify())     .pipe(gulp.dest('dist' )) }) 
 
参数说明:
gulp-sourcemaps(生成 source map) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var  gulp = require ('gulp' )var  sourcemaps = require ('gulp-sourcemaps' )var  autoprefixer = require ('gulp-autoprefixer' )var  concat = require ('gulp-concat' )gulp.task('default' , function ( )  {   return  gulp     .src('src/**/*.css' )     .pipe(sourcemaps.init())     .pipe(autoprefixer())     .pipe(concat('all.css' ))     .pipe(sourcemaps.write('.' ))     .pipe(gulp.dest('dist' )) }) 
 
所有在 sourcemaps.init()和 sourcemaps.write() 之间的插件必须支持 gulp-sourcemaps。
Init 参数:
loadMaps(设为 true 加载存在的 map) 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 var  gulp = require ('gulp' )var  plugin1 = require ('gulp-plugin1' )var  plugin2 = require ('gulp-plugin2' )var  sourcemaps = require ('gulp-sourcemaps' )gulp.task('javascript' , function ( )  {   gulp     .src('src/**/*.js' )     .pipe(sourcemaps.init({ loadMaps : true  }))     .pipe(plugin1())     .pipe(plugin2())     .pipe(sourcemaps.write())     .pipe(gulp.dest('dist' )) }) 
 
debug(设为 true 输出 debug 信息)
gulp-sass(编译 sass) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 'use strict' var  gulp = require ('gulp' )var  sass = require ('gulp-sass' )gulp.task('sass' , function ( )  {   return  gulp     .src('./sass/**/*.scss' )     .pipe(sass().on('error' , sass.logError))     .pipe(gulp.dest('./css' )) }) gulp.task('sass:watch' , function ( )  {   gulp.watch('./sass/**/*.scss' , ['sass' ]) }) 
 
参数配置:
1 2 3 4 5 6 gulp.task('sass' , function ( )  {   return  gulp     .src('./sass/**/*.scss' )     .pipe(sass({ outputStyle : 'compressed'  }).on('error' , sass.logError))     .pipe(gulp.dest('./css' )) }) 
 
outputStyle 可设置输出形式。
gulp-less(编译 less) 1 2 3 4 5 6 7 8 9 10 var  less = require ('gulp-less' )gulp.task('less' , function ( )  {   return  gulp     .src('./src/less/**/*.less' , {       base: './src/'      })     .pipe(less())     .pipe(gulp.dest('./dist/' )) }) 
 
less 参数说明:
paths: 用于@ import 指令的路径数组集 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 var  less = require ('gulp-less' )var  path = require ('path' )gulp.task('less' , function ( )  {   return  gulp     .src('./less/**/*.less' )     .pipe(       less({         paths: [path.join(__dirname, 'less' , 'includes' )]       })     )     .pipe(gulp.dest('./public/css' )) }) 
 
1 2 3 4 5 6 7 8 9 10 11 var  LessAutoprefix = require ('less-plugin-autoprefix' )var  autoprefix = new  LessAutoprefix({ browsers : ['last 2 versions' ] })return  gulp  .src('./less/**/*.less' )   .pipe(     less({       plugins: [autoprefix]     })   )   .pipe(gulp.dest('./public/css' )) 
 
gulp-cssnano(css 压缩) 1 2 3 4 5 6 7 8 9 var  gulp = require ('gulp' )var  cssnano = require ('gulp-cssnano' )gulp.task('default' , function ( )  {   return  gulp     .src('./main.css' )     .pipe(cssnano())     .pipe(gulp.dest('./out' )) }) 
 
gulp-postcss(多个插件串起来的接口) 1 2 3 4 5 6 7 8 9 10 11 12 var  postcss = require ('gulp-postcss' )var  gulp = require ('gulp' )var  autoprefixer = require ('autoprefixer' )var  cssnano = require ('cssnano' )gulp.task('css' , function ( )  {   var  processors = [autoprefixer({ browsers : ['last 1 version' ] }), cssnano()]   return  gulp     .src('./src/*.css' )     .pipe(postcss(processors))     .pipe(gulp.dest('./dest' )) }) 
 
备注:只有适用于 postcss 的插件才能组合,详细参照官网说明。https://github.com/postcss/postcss 
gulp-requirejs-optimize(打包插件) 1 2 3 4 5 6 7 8 9 var  gulp = require ('gulp' )var  requirejsOptimize = require ('gulp-requirejs-optimize' )gulp.task('scripts' , function ( )  {   return  gulp     .src('src/main.js' )     .pipe(requirejsOptimize())     .pipe(gulp.dest('dist' )) }) 
 
参数说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 var  gulp = require ('gulp' )var  requirejsOptimize = require ('gulp-requirejs-optimize' )gulp.task('scripts' , function ( )  {   return  gulp     .src('src/main.js' )     .pipe(       requirejsOptimize({         optimize: 'none' ,         insertRequire: ['foo/bar/bop' ]       })     )     .pipe(gulp.dest('dist' )) }) 
 
多个参数传 fun:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var  gulp = require ('gulp' )var  requirejsOptimize = require ('gulp-requirejs-optimize' )gulp.task('scripts' , function ( )  {   return  gulp     .src('src/modules/*.js' )     .pipe(       requirejsOptimize(function (file )  {         return  {           name: '../vendor/bower/almond/almond' ,           optimize: 'none' ,           useStrict: true ,           baseUrl: 'path/to/base' ,           include: 'subdir/'  + file.relative         }       })     )     .pipe(gulp.dest('dist' )) }) 
 
gulp-handlebars(handlebars 模板编译) 可以通过 package.json 定义使用的版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 {   "devDependencies" : {     "handlebars" : "^1.3.0"    } } var  handlebars = require ('gulp-handlebars' );var  defineModule = require ('gulp-define-module' );gulp.task('templates' , function ( ) {   gulp.src(['templates/*.hbs' ])     .pipe(handlebars())     .pipe(defineModule('cmd' ))     .pipe(gulp.dest('build/templates/' )); }); 
 
gulp-define-module(模块类型) 创建一个模块:
{
  start: function() {},
  end: function() {},
  version: "1.0"
}
defineModule(type, [options])参数说明:
Type: String 类型
默认: bare
CommonJS/Node (defineModule(‘commonjs’) or defineModule(‘node’))
 
cmd (defineModule(‘amd’))
 
Hybrid (defineModule(‘hybrid’))
 
plain defineModule(‘plain’)
 
 
其他参数举例:
1 2 3 4 5 6 7 8 defineModule('amd' , {   require : {     Hogan: 'hogan'    },   name: function (filePath )  {     return  filePath.split(process.cwd() + '/' )[1 ].replace('.js' , '' )   } }) 
 
gulp-sequence(任务合并排序) 假设存在 a、b、c、d、d、e、f 六个任务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gulp.task('sequence-1' , gulpSequence(['a' , 'b' ], 'c' , ['d' , 'e' ], 'f' )) gulp.task('sequence-2' , function (cb )  {   gulpSequence(['a' , 'b' ], 'c' , ['d' , 'e' ], 'f' , cb) }) gulp.task('sequence-3' , function (cb )  {   gulpSequence(['a' , 'b' ], 'c' , ['d' , 'e' ], 'f' )(cb) }) gulp.task(   'gulp-sequence' ,   gulpSequence('sequence-1' , 'sequence-2' , 'sequence-3' ) ) 
 
API 参数:
gulpSequence(‘subtask1’, ‘subtask2’,…[, callback])
gulpSequence.use(gulp) 返回一个存在 gulp 的 gulpSequence 方法,如果有一些任务不存在的错误,这个将会解决它。
gulp-clean(删除地址) 1 2 3 4 5 6 var  gulp = require ('gulp' )var  clean = require ('gulp-clean' )gulp.task('default' , function ( )  {   return  gulp.src('app/tmp' , { read : false  }).pipe(clean()) }) 
 
参数 read:false 防止 gulp 从文件中读取内容并且让任务更快。如果你在 cleaning 后需要使用这个文件,那么不能设置此属性。
1 2 3 4 5 6 7 8 9 var  gulp = require ('gulp' )var  clean = require ('gulp-clean' )gulp.task('default' , function ( )  {   return  gulp     .src('app/tmp/index.js' )     .pipe(clean({ force : true  }))     .pipe(gulp.dest('dist' )) }) 
 
当前工作目录以外的安全文件和文件夹可以删除只有将 force 选项设置为 true。
gulp-ftp (上传文件) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var  gulp = require ('gulp' )var  gutil = require ('gulp-util' )var  ftp = require ('gulp-ftp' )gulp.task('default' , function ( )  {   return  gulp     .src('src/*' )     .pipe(       ftp({         host: 'website.com' ,         user: 'johndoe' ,         pass: '1234'        })     )     .pipe(gutil.noop()) }) 
 
参数说明:
host 主机 ip 地址(必填项) 
port 端口号 
user 默认’anonymous’ 
pass 默认 ‘@anonymous’ 
remotePath 默认’/‘