一、组件
1、gulp-concat 代码合并
2、gulp-autoprefixer:css代码自动补全前缀
3、gulp-copy:文件复制
4、gulp-csscomb:css代码风格规范
5、gulp-csslint:css代码语法检测工具
6、gulp-header:为代码添加头部
7、gulp-jscs:js代码风格规范
8、gulp-less:less文件加载组件
9、gulp-minify-css:去除多余空格,压缩css代码
10、gulp-rename:文件重命名
11、gulp-tap:文件过滤器
12、gulp-uglify:代码丑化
13、gulp-zip:代码压缩
14、jslint:js代码语法检查
二、gulp
1、API:http://www.gulpjs.com.cn/docs/api/
2、gulp.src,gulp.task,gulp.pipe,gulp.watch
3、gulp和webpack比较分析
Gulp 的定位是 Task Runner, 就是用来跑一个一个任务的。放在以前比如我想用sass写css, coffee写js, 我必须手动的用相应的compiler去编译各自的文件,然后各自minify。这时候designer给你了两张新图片,好嘞,接着用自己的小工具手动去压缩图片。后来前端人不能忍了,搞出个自动化这个流程的 Grunt/Gulp, 比如你写完代码后要想发布production版本,用一句 gulp build 就可以rm 掉 dist文件夹中以前的旧文件自动把sass编译成css, coffee编译成js压缩各自的文件,压缩图片,生成图片sprite拷贝minified/uglified 文件到 dist 文件夹但是它没发解决的是 js module 的问题,是你写代码时候如何组织代码结构的问题.之前大家可以用 require.js, sea.js 来 require dependency, 后来出了一个 webpack 说 我们能不能把所有的文件(css, image, js) 都用 js 来 生成依赖,最后生成一个bundle呢? 所以webpack 也叫做file bundler.同时 webpack 为了解决可以 require 不同文件的需求引入了loader, 比如面对sass文件有sass-loader, 把sass 转换成 csscss-loader, 让 webpack 能识别处理 cssstyle-loader, 把识别后的 css 插入到 html style中类似的识别es6 有babel-loader本来这就是 webpack 的初衷,require everything, bundle everything. 一开始 webpack 刚出来的时候大家都是把它结合着 gulp 一起用的, gulp 里面有个 gulp-webpack,就是让 webpack 专门去做module dependency的事情, 生成一个bundle.js文件,然后再用 gulp 去做一些其他杂七杂八minify, uglify的事情。 后来人们发现 webpack 有个plugins的选项, 可以用来进一步处理经过loader 生成的bundle.js,于是有人写了对应的插件, 所以minify/uglify, 生成hash的工作也可以转移到webpack本身了,挤掉了gulp这部分的市场份额。 再后来大家有发现 npm/package.json 里面的scripts 原来好好用啊,调用任务的时候就直接写一个简单的命令,因为 gulp 也不就是各种插件命令的组合呀,大部分情况下越来越不需要 gulp/grunt 之类的了 ref. 所以你现在看到的很多新项目都是package.json里面scripts 写了一堆,外部只需要一个webpack就够了。打个不恰当的比方,webpack就像微信一样,本来就是做聊天(module dependency)的,后来生生搞出一个微信小程序(processing files),大家面对简单的需求发现这个比原生app方便使用啊,于是开发原生的人越来越少一样。