1.安装和使用
在当前项目局部安装gulp,npm i gulp -dev。
-dev的意思是安装成开发依赖,也就是说这个包只有开发环境需要,线上产品环境不需要。这样的话即使删除node_modules也可以直接运行 npm i 就可以根据package.json里面的所有依赖包信息把这些依赖包全局安装进来;
2.部分插件简介
3.部分实现代码
const gulp = require(‘gulp‘);
const htmlmin = require(‘gulp-htmlmin‘);
const fileinclude = require(‘gulp-file-include‘);
const less = require(‘gulp-less‘);
const csso = require(‘gulp-csso‘);
const babel = require(‘gulp-babel‘);
const uglify = require(‘gulp-uglify‘);
gulp.task("first",()=>{
console.log(‘第一个gulp任务‘)
return gulp.src(‘../src/css/base.css‘)
.pipe(gulp.dest(‘../dist/css‘));
});
gulp.task("htmlmin",()=>{
return gulp.src(‘../src/*.html‘)
.pipe(fileinclude())
.pipe(htmlmin({ collapseWhitespace: true}))
.pipe(gulp.dest(‘../dist‘));
})
gulp.task(‘cssmin‘,()=>{
return gulp.src([‘../src/css/*.less‘,‘../src/css/*.css‘])
.pipe(less())
.pipe(csso())
.pipe(gulp.dest(‘../dist/css‘))
})
gulp.task(‘jsmin‘,()=>{
return gulp.src(‘../src/js/*.js‘)
.pipe(babel({
presets: [‘@babel/env‘]
})
)
.pipe(uglify())
.pipe(gulp.dest(‘../dist/js‘))
})
gulp.task(‘copy‘,()=>{
gulp.src(‘../src/lib/*‘)
.pipe(gulp.dest(‘../dist/lib‘))
return gulp.src(‘../src/images/*‘)
.pipe(gulp.dest(‘../dist/images‘))
})
// gulp.task(‘default‘,[‘first‘,‘htmlmin‘,‘cssmin‘,‘jsmin‘,‘copy‘]) 报错 Task function must be specified
gulp.task(‘default‘,gulp.parallel(‘first‘,‘htmlmin‘,‘cssmin‘,‘jsmin‘,‘copy‘));
4.报错解决分析
gulp 3 与 gulp 4 区别:
在Gulp 4.+ 中提供了 gulp.series 和 gulp.garallel gulp 4.+ => gulp.task 只有两个参数
> gulp.series:按照顺序执行
> gulp.parallel:同时(并行)执行计算
你的任务是否在这些前置依赖的任务完成之前运行了?请一定要确保你所依赖的任务列表中的任务都使用了正确的异步执行方式:使用一个 callback,或者返回一个 promise 或 stream。
按照官网的说辞,有以下三种 异步任务支持
接收一个 callback
gulp.task(‘one‘,(callback)=>{
// coding...
callback(); //完成 task
});
gulp.task(‘default‘,gulp.series(‘one‘,()=>{
// coding...
}));
返回一个 stream
gulp.task(‘somename‘, function() {
return gulp.src(‘client/**/*.js‘)
.pipe(minify())
.pipe(gulp.dest(‘build‘));
});
返回一个 promise
gulp.task(‘message‘, function() {
return new Promise(function(resolve, reject) {
// coding...
resolve();
);
});
原文:https://www.cnblogs.com/kmfc7/p/12837585.html