@devmode

Как предотвратить выполнение задачи gulp с пустой выборкой?

В общем, имеется следующая задача для сборки svg спрайта (symbols)

import gulp from 'gulp';
import svgSymbols from 'gulp-svg-symbols';
import gulpIf from 'gulp-if';
import rename from 'gulp-rename';
import plumber from 'gulp-plumber';
import errorHandler from 'gulp-plumber-error-handler';
import path from 'path';

gulp.task('icons', () => (
	gulp.src('app/icons/**/*.svg')
		.pipe(plumber({errorHandler: errorHandler(`Error in 'icons' task`)}))
		.pipe(svgSymbols({
			templates: [
				path.join(__dirname, '../tasks/icon-templates/svg-symbols.svg'),
				path.join(__dirname, '../tasks/icon-templates/svg-symbols.scss')
			],
			transformData: (svg, defaultData) => {
				return {
					id: defaultData.id,
					width: svg.width,
					height: svg.height,
					name: svg.name
				};
			}
		}))
		.pipe(gulpIf(/\.scss/, gulp.dest('app/styles/base')))
		.pipe(gulpIf(/\.svg$/, rename('icons.svg')))
		.pipe(gulpIf(/\.svg$/, gulp.dest('dist/assets/img/')))
));


Проблема в том, что эта задача создает файлы svg и scss даже если в исходной директории нет ни одной иконки, сами файлы на выходе пустые. В чем может быть проблема? Как остановить выполнение задачи с пустым потоком?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы