我在gulpSequence
中指定了一些Gulp任务,如下所示:
gulp.task('default', function(done){
gulpSequence(
'private:clean',
'private:copy-app-package-file',
'private:copy-app-main-file',
'private:copy-libs',
'private:copy-app-files',
'private:copy-css-files',
'private:build-html',
'private:package-app',
done);
});
我认为他们应该一个接一个地跑。 build-html
任务需要libs,app-files和css-files,因为它们包含在一个html文件中。
但是如果我运行默认任务,build-html任务会丢失一些文件。例如,任务只能在html文件中注入10个文件,但有16个文件。
是否有另一种指定依赖任务的方法。我以为gulpSequence
会处理这个问题。
答案 0 :(得分:0)
您指定所有任务应按顺序运行,完全没有并行性。一旦以前的任务显示完成,新任务就会启动。
您可能在build-html
任务之前的任务中遇到一些问题。他们是否正确处理完成(done()
回调)?在大多数情况下,我看到触发了一些异步操作,并在异步任务完成之前调用了回调。因此,在任务真正结束之前,序列仍在继续...
答案 1 :(得分:0)
您排在正确的行,但您尝试使用的npm包已弃用。可能值得考虑签出run-sequence
(https://www.npmjs.com/package/run-sequence),等待上一个任务在开始之前完成。
所以在你的实例中,这将成为
gulp.task('default', function( cb ) {
$.runSequence(
'private:clean',
'private:copy-app-package-file',
'private:copy-app-main-file',
'private:copy-libs',
'private:copy-app-files',
'private:copy-css-files',
'private:build-html',
'private:package-app',
cb
)
});