Gulp 4 - 任务未完成 - Gulpfile.js 浏览器同步



我有点坚持将我的旧 Gulp 3 Gulpfile 更改为在 Gulp 4 中工作。

我已经到了一切似乎都有效的地步,除了默认和服务任务在 powershell 中没有标记为已完成。

我怎样才能取消阻止代码并允许它们正确完成?

var gulp        = require('gulp');
var browserSync = require('browser-sync').create();
var sass        = require('gulp-sass');
// Compile sass into CSS & auto-inject into browsers
gulp.task('sass', function() {
return gulp.src(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'])
.pipe(sass())
.pipe(gulp.dest("src/css"))
.pipe(browserSync.stream());
});
// Move the javascript files into our /src/js folder
gulp.task('js', function() {
return gulp.src(['node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/popper.js/dist/umd/popper.min.js'])
.pipe(gulp.dest("src/js"))
.pipe(browserSync.stream());
});
// Static Server + watching scss/html files
gulp.task('serve', gulp.series('sass', function() {
browserSync.init({
server: "./src"  
});
gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'], gulp.series('sass'));
gulp.watch("src/*.html").on('change', browserSync.reload);
}));
gulp.task('default', gulp.parallel('js', 'serve'));

serve系列中的第二个任务没有返回任何内容,gulp 不明白这一点。任务可以返回流或承诺 - 或者它必须调用回调参数来发出完成信号,如下所示:

gulp.task('serve', gulp.series('sass', function(cb) {
// Your js task code here
cb()
}))

阅读最新的 gulp4 文档,它会帮助你。

最新更新