我有这样的东西:
gulp.task('default', ['css', 'browser-sync'] , function() {
gulp.watch(['sass/**/*.scss', 'layouts/*.css'], function() {
gulp.run('css');
});
});
但它不起作用,因为它监视两个目录,sass和layout目录的更改。
我如何让它工作,以便gulp监视这些目录中发生的任何事情?
发布于 2014-12-25 23:41:58
你可以像这样写一块手表。
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']);
});
通过这种方式,您可以通过您想要监视的文件路径,后跟您创建的任务的名称来设置任意多个任务。然后你可以像这样写你的默认值:
gulp.task('default', ['gulp task name for css/scss', 'gulp task name for js']);
如果你想简单地观察各种文件的变化,那么只需要在你的任务中使用*.css
这样的glob来观察文件。
发布于 2015-04-14 09:56:44
多个人(包括我)都会遇到的一个问题是,在任务之外添加gulp.filter会导致gulp.watch在第一次通过后失败。所以如果你有这样的东西:
var filter = gulpFilter(['fileToExclude.js'])
gulp.task('newTask', function(){ ...
然后,您需要将其更改为:
gulp.task('newTask', function(){
var filter = gulpFilter(['fileToExclude.js'])
过滤器必须包含在任务函数中。希望这能帮助到一些人。
发布于 2018-11-10 01:05:06
这对我很有效(Gulp 4):
function watchSass() {
return gulp.watch(sassGlob, { ignoreInitial: false }, buildCss)
}
function watchImages() {
return gulp.watch(imagesGlob, copyImages)
}
exports.watch = gulp.parallel(watchSass, watchImages)
https://stackoverflow.com/questions/27645103
复制相似问题