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');
});
});
您不需要将任务转换为命名函数 - 尽管这被认为是最佳实践并且很容易实现。
要修复您的观看任务,请尝试:
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
了。