Gulp - 观察奇怪的行为

时间:2017-05-29 12:03:37

标签: gulp watch

我有以下配置:

// Watch
gulp.task('watch', function () {
    gulp.watch('_01_src/js/**/*.js', ['babel']);
    gulp.watch('_01_src/scss/**/*.scss', ['scss']);
});

gulp.task('default', ['scss', 'babel', 'watch']);

如果我单独执行观察:" gulp watch"没有问题。如果我执行" gulp",监视已启动但无效,我不明白为什么(我尝试更改阵列中的位置但没有运气)。

2 个答案:

答案 0 :(得分:0)

在您的示例中,它以异步方式运行scssbabelwatch,这可能会导致问题。也许只需将scssbabel设置为在watch开始之前运行?

// Watch
gulp.task('watch', ['scss', 'babel'], function () {
    gulp.watch('_01_src/js/**/*.js', ['babel']);
    gulp.watch('_01_src/scss/**/*.scss', ['scss']);
});

gulp.task('default', ['watch']);

答案 1 :(得分:0)

请尝试使用gulp.series()gulp.parallel()而不是列表参数。
因此,您的示例如下所示:

// Watch
gulp.task('watch', function (done) {
    gulp.watch('_01_src/js/**/*.js', function(){
        gulp.series('babel')();
    });
    gulp.watch('_01_src/scss/**/*.scss', function(){
        gulp.series('scss')();
    });
    done();
});

gulp.task('default', gulp.series(gulp.parallel('scss', 'babel'), 'watch'));

这样scssbabel将并行运行,而watch之后将并行运行。