我的代码目前使用run-sequence来运行一系列任务。根据我的说法,我现在可以使用本地Gulp 4进行此操作。有人可以确认这是否可行,如果是这样,建议我如何做到这一点。
var runSequence = require('run-sequence');
gulp.task('make-prod-ex1', function () {
makeAppHtml('app/**/*ex1', function () {
runSequence(
'makeTemplate',
'clean-css',
'make-css-files',
'make-css-bundle',
'rename-css-bundle',
'clean-js',
'make-js-bundle',
'rename-js-bundle',
'rename-index',
function () {
console.log("Completed");
});
});
});
答案 0 :(得分:2)
在Gulp 4.0中gulp.series()
和gulp.parallel()
完全取代了Gulp 3.x中使用的任务依赖机制。这意味着你不能再写gulp.task('task1', ['task2'])
之类的东西了。
您现在必须通过撰写gulp.series()
和gulp.parallel()
调用来明确定义执行顺序,而不是告诉Gulp哪些任务相互依赖并让Gulp根据依赖关系图决定执行顺序。两者都可以接受任务名称以及函数并返回函数本身:
gulp.task('make-prod-ex1', gulp.series(
function(done) {
makeAppHtml('app/**/*ex1', done);
},
'makeTemplate',
'clean-css',
'make-css-files',
'make-css-bundle',
'rename-css-bundle',
'clean-js',
'make-js-bundle',
'rename-js-bundle',
'rename-index',
function (done) {
console.log("Completed");
done();
}));
像往常一样,您必须确保通过调用done
回调或在任务/函数中返回流来发出异步终止信号。根据个人经验,Gulp 4.0似乎比Gulp 3.x更快地抱怨这个。