gulp.watch('watch', function() {
watch('./app/index.html', function() {
gulp.start('html');
});
});
对文件进行任何更改后,我都想运行一个名为“ html”的任务。它在gulp的早期版本中有效,因为现在它会产生以下错误。 gulp.start不是函数。
在新版本的gulp中,我找不到任何方法来实现这一目标。我发现我需要将其更改为功能,但是似乎找不到要更改的内容以及更改方式?
其余代码如下
var gulp = require("gulp"),
watch = require('gulp-watch');
gulp.task('default', function(done){
console.log("You created the default task");
done();``
});
gulp.task('html', function(done){
console.log('modifying the html');
done();
});
gulp.watch('watch', function() {
watch('./app/index.html', function() {
gulp.start('html');
});
});
答案 0 :(得分:1)
您无需将任务转换为命名函数-尽管这被认为是最佳做法,而且操作简便。
要解决您的观看任务,请尝试:
gulp.watch('watch', function(done) {
watch('./app/index.html', gulp.series('html'));
done();
});
要更改为命名函数,请执行以下操作:
function html(done) {
gulp.src(….)
console.log('modifying the html');
done();
};
function watch(done) {
watch('./app/index.html', gulp.series('html'));
done();
});
exports.html= gulp.series(html);
exports.default = gulp.series(watch);
请注意,现在watch
任务不是作为字符串调用的,即'watch'
,而是watch
。
在exports.html
中,gulp.series
并不是严格需要的,因为那里只有一个任务,所以exports.html= html;
就足够了。
仅当您希望直接调用任务时才需要导出任务(例如,从命令行gulp html
开始)。如果说html
任务将仅由其他任务在内部调用,则无需export
。