[英]how do i wait for the task in GULP4 SERIES
我在任務'svg:inject'中出現錯誤“找不到文件SVG”。
所以發生了什么:任務'svg:sprite'生成文件sprite.svg。 然后在任務'svg:inject'中,我想使用此sprite.svg在html中移動它。 但是我有一個錯誤((
您對此行為及其解決方法有任何想法嗎?
gulp.task('svg:sprite', (done) => {
gulp.src('./resources/svg/sprite/*.svg')
.pipe(svgstore())
.pipe(dest('./resources/svg/'));
done();
});
gulp.task('svg:inject', gulp.series('svg:sprite', (done) => {
gulp.src('./resources/svg/sprite-svg.html')
.pipe(injectSvg({
base: './resources/svg/'
}))
.pipe(dest('./resources/_code/templates/'));
done();
}));
sprite-svg.html文件:
<div class="hide">
<img src="sprite.svg">
</div>
返回流而不是使用done
回調:
gulp.task('svg:sprite', () =>
gulp.src('./resources/svg/sprite/*.svg')
.pipe(svgstore())
.pipe(gulp.dest('./resources/svg/'))
);
gulp.task('svg:inject', gulp.series('svg:sprite', () =>
gulp.src('./resources/svg/sprite-svg.html')
.pipe(injectSvg({
base: './resources/svg/'
}))
.pipe(gulp.dest('./resources/_code/templates/'))
));
TheDancingCode謝謝! 它有助於。
但是有一個問題:我嘗試將require用於任務。 在這種情況下,我收到一條錯誤消息:
以下任務未完成:svg:inject,svg:sprite
您是否忘記了異步完成信號?
怎么了?
碼:
function getTask(task, path_src, path_dest) {
return require('./tasks/' + task)(gulp, plugins, path_src, path_dest);
};
gulp.task('svg:sprite', () => {
getTask('svg-sprite', CONFIG.src.svg_sprite, CONFIG.src.svg)
});
gulp.task('svg:inject', gulp.series('svg:sprite', () => {
getTask('svg-inject', CONFIG.src.svg, CONFIG.src.html_templates)
}));
還有任務模塊的示例(svg-sprite.js):
module.exports = function (gulp, plugins, path_src, path_dest) {
gulp.src(path_src)
.pipe(plugins.svgstore())
.pipe(gulp.dest(path_dest));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.