在其他依赖项之前运行一个任务依赖项

时间:2015-09-14 19:37:03

标签: gulp

我有build任务看起来像这样:

gulp.task('build', ['clean', 'js', 'css']);

问题在于我希望依赖项cleanjscss之前运行,但我也不希望clean成为依赖关系js cssclean任务。这是因为我需要它们在watch任务中运行时不使用js运行。

我怎样才能做到这一点?

经过长时间的讨论here,据我所知,没有真正的解决方案。

基本上似乎依赖系统是推荐的处理方式,但我不知道依赖系统可以处理这个问题。至少没有重复的任务。

我能想到的唯一选择是包装css&的内容。函数中的function jsTask() { return gulp.src(['dev/assets/scripts/vendor/*.js','dev/assets/scripts/*.js']) .pipe($.concat('scripts.js')) .pipe(gulp.dest('dist/assets/')); } gulp.task('js-build', ['clean'], jsTask); gulp.task('js-watch', jsTask); 任务,然后在任务中运行该函数,使重复任务更加干燥。

示例:

{{ if item.note and item.note.content }}

这是我现在使用的方法。

这似乎是一个常见的用例,因此这可能是一个重复的问题。但我无法通过搜索找到答案。

1 个答案:

答案 0 :(得分:2)

这实际上是Gulp 4将通过引入系列和并行执行来解决的。因此,您可以编写类似这样的内容,而不是同时进行所有并发操作:

gulp.task('default', gulp.series('clean', gulp.parallel('js, css')))

与此同时,你应该看看这里的run-sequence插件:https://www.npmjs.com/package/run-sequence

gulp.task('default', function(callback) {
  runSequence('clean', /** the first task in sequence **/
    ['js', 'css'], /** those are run in parallel **/
    callback); /** tell the task to end **/
});