Как Gulp’ом собрать SVG-спрайт для background-image?

Gulp.js - это инструмент, который помогает автоматизировать задачи веб-разработки. Одной из таких задач является сборка SVG-спрайтов для использования в качестве background-image.

Для сборки SVG-спрайтов с использованием Gulp.js, вам понадобится несколько плагинов. Начнем с установки Gulp и необходимых плагинов. Для этого откройте командную строку или терминал и выполните следующие команды:

npm install gulp --save-dev
npm install gulp-svg-sprite --save-dev
npm install gulp-rename --save-dev

После завершения установки, создайте файл gulpfile.js в корне вашего проекта, чтобы определить задачу для сборки SVG-спрайтов.

const gulp = require('gulp');
const svgSprite = require('gulp-svg-sprite');
const rename = require('gulp-rename');

gulp.task('sprites', function() {
    return gulp.src('path/to/svg/files/*.svg')
        .pipe(svgSprite({
            mode: {
                symbol: {
                    sprite: 'sprite.svg'
                }
            }
        }))
        .pipe(rename({dirname: ''}))
        .pipe(gulp.dest('path/to/destination'));
});

В этом примере мы определяем задачу "sprites" для сборки SVG-спрайтов. Мы указываем, что исходные файлы SVG находятся в папке "path/to/svg/files/*.svg". Затем мы применяем плагин svgSprite, чтобы создать спрайт в режиме symbol (один спрайт для всех символов) и сохранить его в файле "sprite.svg". Затем мы используем плагин rename, чтобы удалить путь к файлам внутри спрайта, и сохранить его в папке "path/to/destination".

Чтобы запустить эту задачу, выполните команду gulp sprites в командной строке или терминале. После успешного выполнения задачи, у вас будет создан спрайт в виде SVG-файла с именем "sprite.svg" в заданной папке назначения.

Теперь вы можете использовать этот SVG-спрайт в качестве background-image в вашем проекте. Для использования нужно просто указать путь к файлу спрайта в CSS с помощью свойства background-image. Например:

.icon {
    background-image: url(path/to/destination/sprite.svg);
}

.icon-facebook {
    background-position: 0 0;
    width: 16px;
    height: 16px;
}

В этом примере мы используем класс "icon" для создания фона из спрайта SVG (переопределяя свойство background-image). Затем мы указываем позицию символа, соответствующую иконке Facebook, с помощью свойства background-position и устанавливаем необходимые размеры ширины и высоты для иконки.

Таким образом, вы можете использовать Gulp.js для сборки SVG-спрайтов и удобного использования их в качестве background-image в вашем проекте. Это поможет улучшить производительность и уменьшить количество запросов для загрузки изображений.