Gulp 与 Grunt 一样,也是一个 自动任务运行器。它充分借鉴了 Unix 操作系统的管道(pipe)思想,很多人认为,在操作上,它要比 Grunt 简单。
Gulp 采取了不同的策略。您不必依赖每个插件的配置,而是处理实际代码。通过 sources
匹配文件,filters
来操作这些文件,以及 sinks
传入管道构建结果。
代码示例:
const gulp = require('gulp');const coffee = require('gulp-coffee');const concat = require('gulp-concat');const uglify = require('gulp-uglify');const sourcemaps = require('gulp-sourcemaps');const del = require('del');const paths = {scripts: ['client/js/**/*.coffee', '!client/external/**/*.coffee'],};// Not all tasks need to use streams.// A gulpfile is another node program// and you can use all packages available on npm.gulp.task('clean', () => del(['build']));gulp.task('scripts',['clean'],() =>// Minify and copy all JavaScript (except vendor scripts)// with source maps all the way down.gulp.src(paths.scripts) // 读取源文件// Pipeline within pipeline.pipe(sourcemaps.init()).pipe(coffee()).pipe(uglify()).pipe(concat('all.min.js')).pipe(sourcemaps.write()).pipe(gulp.dest('build/js')) // 写到 dist 文件夹中);gulp.task('watch', () => gulp.watch(paths.scripts, ['scripts']));// The default task (called when you run `gulp` from CLI).gulp.task('default', ['watch', 'scripts']);
Webpack 与 Glup / Grunt 的区别是什么?
其实 Webpack 和另外两个并没有太多的可比性。
三者都是前端构建工具,Grunt 和 Gulp 在早期比较流行,现在 Webpack 相对来说比较主流,不过一些轻量化的任务还是会用 Gulp 来处理,比如单独打包 CSS 文件等。