近年来,前端工程化深入人心,而工程化中必不可少的环节就是构建。所谓构建就是基于既定的流程对项目中的文件进行处理,从而得到最终用于发布的文件。而Gulp正是目前最流行的前端构建工具之一。
Gulp的使用
以下是使用Gulp进行构建的例子,也是本文的示例项目。文件结构为:
/Users/me/project/project-a
- src/
- dist/
- package.json
- gulpfile.js
其中「src」为源代码目录,「dist」为发布代码目录。「gulpfile.js」的代码为:
var gulp = require('gulp'),
gulpCleanCSS = require('gulp-clean-css'),
gulpUglify = require('gulp-uglify'),
gulpMD5 = require('gulp-md5-plus');
// 把.html文件直接copy到发布目录
gulp.task('copy-html', function() {
return gulp.src('./src/*.html')
.pipe( gulp.dest('./dist') );
});
gulp.task('compress-css', ['copy-html'], function() {
return gulp.src('./src/*.css')
// 压缩CSS代码
.pipe( gulpCleanCSS() )
// 文件名增加MD5,并替换.html文件中的引用地址
.pipe( gulpMD5(10, './dist/*.html') )
// 构建到发布目录
.pipe( gulp.dest('./dist') );
});
gulp.task('compress-js', ['copy-html'], function() {
return gulp.src('./src/*.js')
// 压缩JS代码
.pipe( gulpUglify() )
// 文件名增加MD5,并替换.html文件中的引用地址
.pipe( gulpMD5(10, './dist/*.html') )
// 构建到发布目录
.pipe( gulp.dest('./dist') );
});
gulp.task('default', ['compress-css', 'compress-js']);