【问题标题】:Why can't I pass dependencies task when I bundle tasks in Gulp为什么我在 Gulp 中捆绑任务时无法传递依赖项任务
【发布时间】:2015-09-14 15:44:47
【问题描述】:

如果我执行这段代码,它会抛出一个错误,说它只接受一个函数而不是三个任务

gulp.task('build', ['clean'], ['styles', 'scripts', 'images']);

我想在其他三个之前执行干净的任务, 当我将 clean 任务定义为 clean 时,我不想将它们连接到每个单个任务,这将删除我的整个构建文件夹。

我该怎么做?

这是 API 参考 https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulptaskname-deps-fn

【问题讨论】:

  • 如果我这样写gulp.task('build', ['clean', 'styles', 'scripts', 'images']);,任务会同步吗?

标签: build gulp


【解决方案1】:

找到解决办法,使用run-sequence插件按顺序运行任务https://github.com/OverZealous/run-sequence

gulp.task('build', function() {
    runSequence('clean',
                ['styles', 'scripts', 'images']);
});

直到 Gulp 4.0 将原生支持 gulp.series 和 gulp.parallel,它看起来像这样

gulp.task('build', gulp.series('clean', gulp.parallel('styles', 'scripts', 'images')));

【讨论】:

    【解决方案2】:

    gulp.task('build', ['clean', 'styles', 'scripts', 'images']);

    clean 任务将是构建依赖于启动的第一个任务,但是它们都将并行启动。先启动 clean 是由于实施,可能会更改,恕不另行通知。

    这应该可行:

    gulp.task('build', ['clean'], function(cb)
    {
    var runSequence = require('run-sequence');
      runSequence( ['styles', 'scripts', 'images']);
    } );
    

    【讨论】:

      猜你喜欢
      • 2014-06-15
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2016-03-28
      相关资源
      最近更新 更多