Gulp browserSync任务只运行一次

Gulp-browserSync task only running once

本文关键字:一次 运行 browserSync 任务 Gulp      更新时间:2023-09-26

我已经用gull设置了浏览器同步,html和css的重新加载运行得很好,但我在javascript方面遇到了问题。当我启动浏览器同步任务并更改一些js时,它只按预期工作一次。我已经按照这份官方指南做好了一切准备。

gulp.task('js', function () {
    return gulp.src(['./app/*/*.js', './app/*.js'])
        .pipe(browserify())
        .pipe(uglify())
        .pipe(gulp.dest('./build'));
});
gulp.task('js-watch', ['js'], browserSync.reload);
gulp.task('browser-sync', function() {
    browserSync.init({
        server: {
            baseDir: "./app/"
        }
    });
    gulp.watch('app/styles/*.scss', ['sass']);
    gulp.watch("app/*.html").on('change', browserSync.reload);
    gulp.watch(['./app/*/*.js', './app/*.js'], ['js-watch']);
});

控制台日志
因此,当我第一次更改一些javascript时,它会被更改,页面会按预期重新加载——js watch任务运行js任务,然后重新加载页面。但在接下来的运行中,只运行js任务。

我在谷歌上搜索了大约两个小时,然后决定问一个问题,所以我希望这不是重复的。但以防万一,对不起。

.dest() 之后的'js'任务中添加.pipe(browserSync.stream());

gulp.task('js', function () {
    return gulp.src(['./app/*/*.js', './app/*.js'])
        .pipe(browserify())
        .pipe(uglify())
        .pipe(gulp.dest('./build'))
        .pipe(browserSync.stream())
});