##gulp
> http://www.gulpjs.com/
> http://www.gulpjs.com.cn/
> http://www.gulpjs.com.cn/docs/api/
> [前端构建之gulp与常用插件](http://www.mamicode.com/info-detail-517085.html)
自动化构建工具
##安装
```
$ npm install gulp -g
```
项目目录再次安装
```
$ npm install gulp
```
##Gulp的作用


##优势
- 入手快,几句代码即可使用
- 不会频繁操作IO,执行速度快
- 插件职责单一,代码质量高
- 仅有5个api
##Gulp与Grunt


##Gulp插件
- 文件合并 gulp-concat
- 文本替换 gulp-replace
- JS压缩 gulp-uglify
- CSS压缩 gulp-cssmin
- 等等
##实例
方括号中的为依赖,会先执行依赖的任务。
```
var gulp = require('gulp');
gulp.task('default', ['copy', 'watch'], function(){
console.log('default');
});
gulp.task('copy', function(){
gulp.src('./index.html')
.pipe(gulp.dest('./dist/'));
});
gulp.task('watch', function(){
gulp.watch('./index.html', ['copy']);
});
```
顺序:
1.copy task
2.watch task
3.default
然后进入监听状态,循环 1和2
启动
```
//默认回去找default task
gulp
gulp copy
gulp watch
```
##API
- .task 定义任务api
- .src 将文件转换成流
- .dest 将流转换成文件输出
- .watch监控文件变换,则执行XXX
- 简介
- 配置安装
- window
- 基础知识
- Node 命令基本用法
- 进程和线程
- 调试
- 异步、回调
- 全局对象
- 非阻塞 I/O和事件驱动和非阻塞机制
- npm包概念
- 模块化
- 实现require和cache
- 核心模块操作
- fs文件系统操作
- 同步调用和异步调用
- 缓冲区处理(二进制数据)
- 文件读取
- 文件写入
- 例子:读取歌词文件显示
- 文件流
- 例子:文件复制
- 监视文件
- 其他文件操作
- 目录操作
- 例子:递归加载目录树
- path路径操作模块
- 网络操作
- URL 解析模块
- querystring查询字符串模块
- crypto加密解密模块
- Socket
- 例子:聊天室
- coffeescript
- Gulp-自动化构建工具
- Gulp实现前端构建
- Gulp后端构建
- 插件
- gulp-load-plugins 模块化管理插件
- gulp-minify-css 压缩css插件
- gulp-sass 将sass预处理为css
- gulp-less 将less预处理为css
- gulp-sourcemaps 插件
- gulp-concat 合并插件
- gulp-uglify 压缩JS插件
- gulp-util gulp常用工具库插件
- yargs插件
- gulp-nodemon 自动启动/重启插件
- coffee-script 插件
- gulp-coffee插件
- gulp-livereload 网页自动刷新
- Moment.js-处理时间插件
- express 前端框架
- Async-异步流程控制插件
- node-progress进度条插件
- JSHint-代码规范检查工具
- lodash -JavaScript 工具库
- 资料
- 框架所用包
- bodyParser