Gulp:无依赖的同步性
Posted
技术标签:
【中文标题】Gulp:无依赖的同步性【英文标题】:Gulp: Synchronicity without dependency 【发布时间】:2014-08-12 01:59:21 【问题描述】:我正在将构建系统迁移到 gulp,但遇到了问题:
我定义了各种构建任务(scripts
、style
、jade
等),以及一个删除所有构建文件的clean
任务。
我想确保构建任务不会在清理任务之前运行,但是我还希望能够在不先清理的情况下运行构建任务。
即我要:
gulp.task('build', ['clean', 'scripts', 'style', 'jade']);
仅在clean
完成后才开始运行scripts
、style
和jade
,但是
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:无依赖的同步性的主要内容,如果未能解决你的问题,请参考以下文章