> 来源:https://github.com/nimojs/gulp-book
gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。
在 Web 前端开发工作中有很多“重复工作”,比如压缩CSS/JS文件。而这些工作都是有规律的。找到这些规律,并编写 gulp 配置代码,让 gulp 自动执行这些“重复工作”。
## 将规律转换为 gulp 代码
现有目录结构如下:
~~~
└── js/
└── a.js
~~~
### [](https://github.com/nimojs/gulp-book#规律)规律
1. 找到 js/目录下的所有 .js 文件
2. 压缩这些 js 文件
3. 将压缩后的代码另存在 dist/js/ 目录下
### [](https://github.com/nimojs/gulp-book#编写-gulp-代码)编写 gulp 代码
~~~
// 压缩 JavaScript 文件
gulp.task('script', function() {
// 1. 找到
gulp.src('js/*.js')
// 2. 压缩
.pipe(uglify())
// 3. 另存
.pipe(gulp.dest('dist/js'));
});
~~~
### [](https://github.com/nimojs/gulp-book#代码执行结果)代码执行结果
代码执行后文件结构
~~~
└── js/
│ └── a.js
└── dist/
└── js/
└── a.js
~~~
a.js 压缩前
~~~
function demo (msg) {
alert('--------\r\n' + msg + '\r\n--------')
}
demo('Hi')
~~~
a.js 压缩后
~~~
function demo(n){alert("--------\r\n"+n+"\r\n--------")}demo("Hi");
~~~
此时 `dist/js` 目录下的 `.js` 文件都是压缩后的版本。
你还可以监控 `js/` 目录下的 js 文件,当某个文件被修改时,自动压缩修改文件。启动 gulp 后就可以让它帮助你自动构建 Web 项目。
* * *
gulp 还可以做很多事,例如:
1. 压缩CSS
2. 压缩图片
3. 编译Sass/LESS
4. 编译CoffeeScript
5. markdown 转换为 html