一、gulp
- gulp是一种自动化构建工具可以自动化构建流程。可以编写指定的任务,简化工作量。
二、使用
- 创建 gulpfile.js 文件
- 在该文件中制定每次需要执行的任务。
- 例:
const gulp = require('gulp');
gulp.task('libHandler', ()=>{
return gulp.src('./src/***')
.pipe(gulp.dest('./lib'))
})
module.exports.default = gulp.parallel('libHandler')
三、gulp API
gulp.task([name|'name'], (done) => {
done()
})
- gulp.src 创建一个流,用于从文件系统读取文件对象。
gulp.src('input/*.js')
- gulp.dest 创建一个用于将 Vinyl 对象写入到文件系统的流。
gulp.src('input/*.js')
.pipe(dest('output/'));
- gulp.series 将任务函数和/或组合操作组合成更大的操作,这些操作将按顺序依次执行
gulp.series('taskName', 'taskName2');
- gulp.parallel 将任务功能和/或组合操作组合成同时执行的较大操作
gulp.parallel('taskName', 'taskName2');
- gulp.watch 监听glob(文件等)发生更改时运行任务
gulp.watch('./src/css/*.css', function(cb) {
cb();
})
四、gulp plugins
1、压缩css文件
- gulp-autoprefixer、gulp-cssmin
- 例:
const cssmin = require('gulp-cssmin');
const autoprefixer = require('gulp-autoprefixer');
gulp.task('cssHandler', ()=>{
return gulp.src('./src/plugins/css/*.css')
.pipe(autoprefixer())
.pipe(cssmin())
.pipe(gulp.dest('./dist/css'))
})
2、压缩js文件
const uglify = require('gulp-uglify');
const babel = require('gulp-babel');
gulp.task('jsHandler', ()=>{
return gulp.src('./src/plugins/index.js')
.pipe(babel({
presets:['@babel/env']
}))
.pipe(gulp.dest('./dist/js'))
})
3、压缩html文件
const htmlmin = require('gulp-htmlmin');
gulp.task('htmlHandler', ()=>{
return gulp.src('./src/pages/**')
.pipe(htmlmin({
collapseBooleanAttributes:true,
collapseWhitespace:true,
removeComments:true,
removeAttributeQuotes:true,
minifyJS:true,
minifyCSS:true
}))
.pipe(gulp.dest('./dist/pages'))
})
4、删除文件
const del = require('del');
gulp.task('delHandler', ()=>{
return del(['./dist'])
})
5、运行npm 命令
gulp.task('testRun', (done) => {
run('npm run lib').exec()
done()
})