我目前正在使用Gulp v4。问题是干净的dist和包装任务不会自动运行。
/* CLEAN
// empty dist folder
gulp.task('clean', require('del').bind(null, ['dist/*']));
//watch
gulp.task('watch', gulp.parallel('browserSync', 'sass', 'useref', 'imagemin', 'fonts', function() {
gulp.watch('app/sass/**/*.scss', gulp.series('sass'));
gulp.watch('app/*.html').on('change', browserSync.reload);;
}));
/* DEFAULT
/------------------------*/
// default gulp tasks executed with `gulp
gulp.task('default', ['clean', 'css', 'javascript', 'images']);
你可以使用gulp.series
来组合任务(https://gulpjs.com/docs/en/api/series)。
function clean() {
return del(['dist']);
}
function scss() {
return gulp.src('./src/**/*.scss')
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
.pipe(concat('app.css'))
.pipe(gulp.dest('./dist'));
}
function build(done) {
gulp.series(
clean,
scss,
)(done);
}
function serve(done) {
browserSync.init({
server: {
baseDir: './dist',
},
});
done();
}
function reload(done) {
browserSync.reload();
done();
}
function run(done) {
gulp.series(
build,
serve,
watchers,
)(done);
}
function reload(done) {
browserSync.reload();
done();
}
function watchers() {
gulp.watch('./src/**/*.scss', gulp.series(scss, reload));
// ... other watchers here
}
gulp.task('build', build);
gulp.task('default', run);