Gulp' watch'使用BrowserSync转移到Gulp 4后没有获取更改

时间:2018-04-21 12:36:58

标签: gulp browser-sync gulp-watch gulp-browser-sync

刚刚从Gulp 4迁移到Gulp 3.9.1,当我运行gulp时一切正常并且它编译好了我可以启动watch命令很好,所以它似乎就像它正在观察变化一样,每当发生变化时它似乎都无法接受它。

这是我的watch任务:

gulp.task('watch', gulp.series('browser-sync', function() {
    gulp.watch(['scss/**/*.scss'], gulp.series('css-minify'));
    gulp.watch(['js/dev/**/*.js'], gulp.series('js-watch'));
}));

browser-sync任务:

gulp.task('browser-sync', function() {
    browserSync.init({
        open: 'external',
        proxy: "mysite.local",
        host: 'mysite.local',
        // port: 5000,
        browser: "chrome",
    });
});

Gulp 4是否需要另外更改我在这里失踪?

1 个答案:

答案 0 :(得分:3)

好吧,似乎在Gulp 4中它需要一个stream, promise, event emitter, child process or observable to be returned from a function or task

所以一旦我改变了:

gulp.task('browser-sync', function() {
    browserSync.init({
        open: 'external',
        proxy: "mysite.local",
        host: 'mysite.local',
        // port: 5000,
        browser: "chrome",
    });
});

为:

gulp.task('browser-sync', function(done) {
    browserSync.init({
        open: 'external',
        proxy: "mysite.local",
        host: 'mysite.local',
        // port: 5000,
        browser: "chrome",
    });
    done();
});

......一切都恢复了。

注意添加传递给匿名函数的参数,然后在函数末尾激活 - 如链接文章中所述。