Gulp:无依赖的同步性

Posted

技术标签:

【中文标题】Gulp:无依赖的同步性【英文标题】:Gulp: Synchronicity without dependency 【发布时间】:2014-08-12 01:59:21 【问题描述】:

我正在将构建系统迁移到 gulp,但遇到了问题:

我定义了各种构建任务(scriptsstylejade 等),以及一个删除所有构建文件的clean 任务。

我想确保构建任务不会在清理任务之前运行,但是我还希望能够在不先清理的情况下运行构建任务。

即我要:

gulp.task('build', ['clean', 'scripts', 'style', 'jade']);

仅在clean 完成后才开始运行scriptsstylejade,但是

gulp.task('watch', function()

  gulp.watch('path/to/stylus', ['css']);

);

不应触发clean 运行,如果css 依赖于clean,就会出现这种情况。

【问题讨论】:

我不知道 gulp,但我知道 caolan 的 async 模块。如果可以在异步函数中使用 gulp。 async.auto 可以为您提供帮助,它有一个自然的符号来表示要完成的异步作业的依赖关系。仅当 A 和 B 完成时才执行功能 C。完成 C 后执行 D。 在某些情况下我不知道如何摆脱gulp.run,例如在这种情况下。 他们删除了 run 方法... Gulp. can't figure how to run tasks synchronously after each other的可能重复 @Mathletics 由于问题的第二部分,这不是重复的:“我也希望能够在不先清理的情况下运行构建任务。”跨度> 【参考方案1】:

我也遇到过同样的问题:

...
var sequence = require('run-sequence');

gulp.task('dev', ['css', 'js', 'html']);

gulp.task('watch', function() 

    gulp.watch(src.css, ['css']);
    gulp.watch(src.js, ['js']);
    gulp.watch(src.html, ['html']);
);

gulp.task('default', function(done) 

    sequence('clean', 'dev', 'watch', done);
);

https://www.npmjs.org/package/run-sequence

请阅读:

这只是一个临时解决方案,直到编排器更新为支持非依赖的有序任务。

顺便说一句,谢谢https://***.com/users/145185/overzealous!

【讨论】:

以上是关于Gulp:无依赖的同步性的主要内容,如果未能解决你的问题,请参考以下文章

gulp 4 依赖项和插件

Gulp build 不会自动安装依赖项?

实战环境搭建gulp

安装全局可执行的gulp

Gulp / NPM Dev依赖项 - 我的网站完成后如何处理它们?

19前端 | 前端构建工具Gulp