问题描述
// 构建任务
gulp.task('default', ['htmlmin', 'cssmin', 'jsmin', 'copy']);
运行default时候报错:
解决方法
参考博文:https://blog.youkuaiyun.com/ryyzxf/article/details/108449769?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
因为gulp 4.0 加入了 gulp.series 和 gulp.parallel 来实现任务的串行化和并行化。
将代码改为:
// 构建任务
gulp.task('default', gulp.series(['htmlmin', 'cssmin', 'jsmin', 'copy']));
还是报一样的错!
问题原因: gulp 4.0 的任务函数中,如果任务是同步的,需要使用 done 回调。这样做是为了让 gulp 知道你的任务何时完成。
修改各个任务的代码:
// 修改前
gulp.task('copy', () => {
gulp.src('./src/images/*')
.pipe(gulp.dest('dist/images'));
gulp.src('./src/lib/*')
.pipe(gulp.dest('dist/lib'));
});
// 修改后
gulp.task('copy', (done) => {
gulp.src('./src/images/*')
.pipe(gulp.dest('dist/images'));
gulp.src('./src/lib/*')
.pipe(gulp.dest('dist/lib'));
done();
});
运行成功:
参考:https://blog.youkuaiyun.com/ryyzxf/article/details/108449255