Использую gulp-svg-sprite для генерации SVG-спрайтов при верстке.
Структура входящих файлов следующая:
-- icons
-- collection1
-- icon1.svg
-- icon2.svg
-- collection2
-- icon1.svg
-- icon2.svg
где collection1, icon1.svg -- произвольные имена папок и файлов.
Желаемая структура выходящих файлов следующая:
-- icons
-- collection1.svg
-- collection2.svg
где collection1.svg, collection2.svg -- спрайты, имена которых сформированы из имен соответствующих вложенных папок во входящих файлах.
Подскажите, как правильно сформировать таск, чтобы он автоматически генерировал и именовал спрайты на основании вложенных папок?
Предположение: возможно, средствами Gulp этого не сделать и нужно использовать стороннюю утилиту для обхода вложенных папок.
Мой текущий таск (генерирует единый спрайт)
Таск:
import { paths } from "../gulpfile.babel";
import gulp from "gulp";
import svg from "gulp-svg-sprite";
gulp.task("sprites", () => {
return gulp.src(paths.sprites.src)
.pipe(svg({
shape: {
dest: "intermediate-svg"
},
mode: {
stack: {
sprite: "../sprite.svg"
}
}
}))
.pipe(gulp.dest(paths.sprites.dist));
});
Файл gulpfile.babel.js:
const paths = {
sprites: {
src: "./src/images/icons/**/*.svg",
dist: "./dist/images/icons/"
}
};
export { paths };