忽略 gulp.js 中的任务依赖性
Ignoring task dependencies in gulp.js
我有以下任务
gulp.task('sass-build', ['clean-build'], function () {
// do stuff
});
这显然需要 clean-build
在开始之前完成。但是,我也想在没有 clean-build
依赖项的情况下将此任务与 gulp.watch
一起使用。
我知道您可以使用 Skipping Tasks Listed as Dependencies in Gulp 中建议的辅助任务来解决此问题,但这需要使用 gulp.run
(已弃用)或 gulp.start
(已弃用)甚至没有记录,因为它被认为是不好的做法)。
执行此操作的更好方法是什么?或者是使用 gulp.run
或 gulp.start
的唯一方法?
我使用 run-sequence 解决了这个问题。这也让整个多任务的顺序更加清晰。
我所做的就是从 sass-build
中删除 clean-build
依赖项。所以最终:
gulp.task('sass-build', function () {
// do stuff
});
gulp.task('build', function () {
runSequence('clean-build', [..., 'sass-build', ...], 'index-build');
});
gulp.task('watch', function () {
gulp.watch('src/sass/*', ['sass-build']);
});
非常方便!
链接问题中显示的方法实际上还不错。除了 gulp.run
你可以使用简单的函数来做同样的事情:
var sassFunction = function() {
return gulp.src('blahbla')
.pipe(bla())
}
gulp.task('sass-build', ['clean-build'], function () {
return sassFunction()
});
gulp.task('sass-dev', function () {
return sassFunction();
});
gulp.task('watch', function() {
gulp.watch('your/sass/files/**/*.scss', ['sass-dev'])
});
您的其他方法也不错,将与 Gulp 4.
完全结合
gulp.task('default', gulp.series('clean-build', gulp.parallel('sass-build')));
需要注意的地方,因为它完全改变了依赖关系树。
我有以下任务
gulp.task('sass-build', ['clean-build'], function () {
// do stuff
});
这显然需要 clean-build
在开始之前完成。但是,我也想在没有 clean-build
依赖项的情况下将此任务与 gulp.watch
一起使用。
我知道您可以使用 Skipping Tasks Listed as Dependencies in Gulp 中建议的辅助任务来解决此问题,但这需要使用 gulp.run
(已弃用)或 gulp.start
(已弃用)甚至没有记录,因为它被认为是不好的做法)。
执行此操作的更好方法是什么?或者是使用 gulp.run
或 gulp.start
的唯一方法?
我使用 run-sequence 解决了这个问题。这也让整个多任务的顺序更加清晰。
我所做的就是从 sass-build
中删除 clean-build
依赖项。所以最终:
gulp.task('sass-build', function () {
// do stuff
});
gulp.task('build', function () {
runSequence('clean-build', [..., 'sass-build', ...], 'index-build');
});
gulp.task('watch', function () {
gulp.watch('src/sass/*', ['sass-build']);
});
非常方便!
链接问题中显示的方法实际上还不错。除了 gulp.run
你可以使用简单的函数来做同样的事情:
var sassFunction = function() {
return gulp.src('blahbla')
.pipe(bla())
}
gulp.task('sass-build', ['clean-build'], function () {
return sassFunction()
});
gulp.task('sass-dev', function () {
return sassFunction();
});
gulp.task('watch', function() {
gulp.watch('your/sass/files/**/*.scss', ['sass-dev'])
});
您的其他方法也不错,将与 Gulp 4.
完全结合gulp.task('default', gulp.series('clean-build', gulp.parallel('sass-build')));
需要注意的地方,因为它完全改变了依赖关系树。