在文件更改发生后,如何通过实时重新加载来调用gulp中的任务

时间:2014-07-29 21:15:19

标签: gulp livereload

我在gulp文件中定义了以下任务:

gulp.task('watch:livereload', function(){
  livereload.listen();
  gulp.watch('app/**').on('change', livereload.changed);
});

我最近才意识到只有像html这样的静态内容才有用。因为我使用sass而app主要是js。我想调用我预定义的一些任务来重新编译js和css,对它们进行任何更改。

我一直在调用任务的方式是:

gulp.task('compile:development',
  [
    'bower',
    'compile:scripts:development',
    'compile:sass:development',
    'serve',
    'watch:livereload'
  ]
);

但我希望任务能够在变化时发生。想法?

1 个答案:

答案 0 :(得分:1)

为了浏览器更新,您应该像处理livereload一样继续使用gulp.watch。如果你想在改变时重新运行一些任务,我认为gulp.watch('app/**', ['compile:development']); 是一种简单而内置的方法。

gulp.watch('app/**', ['compile:scripts:development', 'compile:sass:development']);

或更具体的任务:

watch

watchers任务的示例,该任务定义了一些具有不同tasks的{​​{1}}:

gulp.task('watch', function () {
   gulp.watch('app/sass/*', ['compile:sass:development']);
   gulp.watch('app/js/*', ['compile:scripts:development']);
});