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']);
});
const { watch, series, parallel } = require('gulp');
function watchTask(cb) {
// this will execute all task on any changes
watch(['src/**/*'],
series(parallel(jsTask, htmlTask, assetTask),
));
// this will run specific task based on file type or folder
watch(['src/**/*.js'], series(jsTask));
watch(['src/**/*.html'], series(htmlTask));
watch(['assets/**/*'], series(assetTask));
}
exports.default = series(parallel(jsTask, htmlTask, assetTask), watchTask);
7条答案
按热度按时间pxiryf3j1#
sass/**/*.scss
和layouts/**/*.css
将监视每个目录和子目录,以查看对.scss
和.css
文件的任何更改。如果要将其更改为 any 文件,请将最后一位设为*.*
s3fp2yjn2#
你可以这样写一个表。
这样你就可以设置任意多的任务,方法是在你要监视的任务的文件路径后面加上你创建的任务的名称。然后你可以这样写你的默认值:
如果您只想监视各种文件更改,那么只需在任务中使用glob(如
*.css
)来监视文件。wdebmtf23#
许多人(包括我)都遇到过一个问题,即在任务之外添加gulp.filter会导致gulp.watch在第一次传递后失败。
则需要将其更改为:
过滤器必须包含在任务函数中。希望这对某些人有帮助。
91zkwejq4#
这对我很有效(咕噜4声):
falq053o5#
@A.J Alger的回答在我使用Gulp v3.x时很管用。
但从第四次吞咽开始,下面的内容似乎对我很有效。
请注意,每个任务都必须返回一个值或调用“done()"。本例中的主任务是”watchSrc“,它并行调用其他任务。
ewm0tg9j6#
到了第四口,这是另一种选择:
8dtrkrch7#
如果将任务转换为函数
然后有2个有用的方法,你可以用途:
GULP.SERIES将同步运行任务
PARALLEL将异步运行它们