如何吞噬多个文件?
我有这样的东西:
gulp.task('default', ['css', 'browser-sync'] , function() { gulp.watch(['sass/**/*.scss', 'layouts/*.css'], function() { gulp.run('css'); }); });
但它不起作用,因为它监视两个目录,即sass和布局目录以进行更改。
我如何使它工作,以便吞食这些目录内发生的任何事情?
gulp.task('default', ['css', 'browser-sync'] , function() { gulp.watch(['sass/**/*.scss', 'layouts/**/*.css'], ['css']); });
sass/**/*.scss
和layouts/**/*.css
.css
将会观察每个目录和子目录对.scss
和.css
文件的任何改变。 如果你想改变任何文件使最后一点*.*
你可以写一个像这样的手表。
gulp.task('watch', function() { gulp.watch('path/to/file', ['gulp task name for css/scss']); gulp.watch('path/to/file', ['gulp task name for js']); });
通过这种方式,您可以通过您想要观看的文件path以及所创build的任务的名称来设置任意数量的任务。 那么你可以写下你的默认像这样:
gulp.task('default', ['gulp task name for css/scss', 'gulp task name for js']);
如果你想简单地观察各种文件的变化,那么只需要在你的任务中使用象*.css
这样的glob来观察文件。
多人(包括我)面临的一个问题是,在任务之外添加gulp.filter会导致gulp.watch在第一次传递后失败。 所以,如果你有这样的事情:
var filter = gulpFilter(['fileToExclude.js']) gulp.task('newTask', function(){ ...
那么你需要改变它:
gulp.task('newTask', function(){ var filter = gulpFilter(['fileToExclude.js'])
filter必须包含在任务function中。 希望能帮助别人。