Css 如何使用gulp live server连接server.notify和['sass']?

Css 如何使用gulp live server连接server.notify和['sass']?,css,sass,gulp,livereload,Css,Sass,Gulp,Livereload,在我的gulp设置中,我似乎无法同时重新加载服务器和运行sass。如果我保存两次styles.scss文件,一切正常。当我只保存一次时,服务器会重新加载,但sass不会运行 我曾尝试将“sass”任务作为“service”的依赖项来运行,但这使事情变得更糟。有人能给我指一下正确的方向吗 //run sass gulp.task('sass', function () { return sass('client/scss/styles.scss') .on('error', fun

在我的gulp设置中,我似乎无法同时重新加载服务器和运行sass。如果我保存两次styles.scss文件,一切正常。当我只保存一次时,服务器会重新加载,但sass不会运行

我曾尝试将“sass”任务作为“service”的依赖项来运行,但这使事情变得更糟。有人能给我指一下正确的方向吗

//run sass
gulp.task('sass', function () {
    return sass('client/scss/styles.scss')
    .on('error', function (err) {
      console.error('Error!', err.message);
   })
    .pipe(gulp.dest('client/css/'));
});

//run sass again when file is updated
gulp.task('watch', function(){
  gulp.watch('client/scss/*.scss', ['sass']);
});

//reload server when sass file updates
gulp.task('serve', function() {
    var server = gls.new('server.js');
    server.start();
    gulp.watch(['client/scss/*.scss'], server.notify);
    gulp.watch('server.js', server.start);
});

//initial run
gulp.task('default', ['serve', 'sass', 'watch']);

问题是,您正在服务器任务中监视scss文件

因此,当前的流程如下所示:

gulp.task('serve', function() {
    var server = gls.new('server.js');
    server.start();
    gulp.watch(['client/css/*.css'], server.notify);
    gulp.watch('server.js', server.start);
});
SCS发生了变化 监视任务开始编译sass,服务器使用旧的 css太早了 最终的css被编译 如果您第二次保存SCS,这一切都会再次发生,现在一切正常,因为css在第一次运行时被刷新

您应该在serve任务中查看css文件。这样,流程将是:

SCS发生了变化 监视任务开始编译sass 最终的css被编译 服务器任务使用新css重新加载页面 因此,解决方案是简单地更改服务任务,如下所示:

gulp.task('serve', function() {
    var server = gls.new('server.js');
    server.start();
    gulp.watch(['client/css/*.css'], server.notify);
    gulp.watch('server.js', server.start);
});