Для своих старых проектов на React я в свое время написал SASS-скрипт:
%icon {
display: inline-block;
mask-position: center center;
mask-size: 100%;
mask-repeat: no-repeat;
}
$items: check, close, error; // ...
@each $item in $items {
.icon-#{$item} {
@extend %icon;
mask-image: url(../../svg/#{$item}.svg);
}
}
То есть я просто закидываю в нужную папку SVG-файл, пишу его имя в SASS-массив, и мне доступны красивые иконки, которые я могу ресайзить, раскрашивать градиентами и т.д.
Проблема началась во Vue-проекте, который по-другому обрабатывает пути. Мне пришлось закинуть папку svg в puplic (не в src как в React), и теперь ESLint ругается на них:
../../svg/mark.svg referenced in /Users/username/git/myproject/frontend/src/components/Pricing/PlanCompareTitles.vue?vue&type=style&index=0&lang.scss didn't resolve at build time, it will remain unchanged to be resolved at runtime
Заказчик настаивает на устранении ошибок линтера. Как можно настроить, чтобы SVG лежали в папке src, а копирование происходило при сборке? Сборщик Vite