如何从3迁移到gulp v4?

问题描述 投票:1回答:1
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');
 });
});
npm gulp
1个回答
2
投票

您不需要将任务转换为命名函数 - 尽管这被认为是最佳实践并且很容易实现。

要修复您的观看任务,请尝试:

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.htmlgulp.series并不是严格需要的,因为那里只有一项任务,所以exports.html= html;就足够了。

如果你想直接调用它,你只需要导出一个任务(例如从命令行gulp html)。如果说html任务只会被其他任务内部调用,那么就不需要export了。

© www.soinside.com 2019 - 2024. All rights reserved.