我有build
任务看起来像这样:
gulp.task('build', ['clean', 'js', 'css']);
问题在于我希望依赖项clean
在js
和css
之前运行,但我也不希望clean
成为依赖关系js
css
和clean
任务。这是因为我需要它们在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 }}
这是我现在使用的方法。
这似乎是一个常见的用例,因此这可能是一个重复的问题。但我无法通过搜索找到答案。
答案 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 **/
});