Как настроить параметры для svgo в конфигурации laravel mix?

Опция оптимизации SVG, встроенная Laravel Mix, вызывает у меня проблемы, особенно trumbowyg, когда Laravel Mix копирует файл, который подвергается оптимизации SVG, icons.svg Файл неправильно оптимизирован, или, скорее, имеет совершенно пустой вывод SVG.

Поэтому я пошел искать исправление, используя svgo CLI, я на самом деле узнал, что проблема была вызвана removeUselessDefs: true опция / плагин, поэтому, если я установлю это в false, я получу оптимизированный файл SVG, который НЕ сломан.

Еще одна проблема началась, когда я не мог понять, КАК поместить эту опцию в Laravel Mix. В настоящее время для вещей, чтобы хотя бы "работать" я отключил svgo от img-loader полностью, что я даже не уверен, правильно ли я это сделал, но вот что работает для этого:

mix.options({
  imgLoaderOptions: {
    svgo: false
  },
});

По умолчанию, imgLoaderOptions будет иметь svgo: {}но, видимо, эти скобки не для svgo варианты, и я также не смог найти документацию по imgLoaderOptions аргументы / значение.

Тем временем я вырыл глубже и вот как я понял процесс:

Laravel Mix Запускает webpack и начинает читать в активы, ловит .svgзагружает его используя img-loader, По умолчанию, img-loader имеет библиотеку оптимизации изображений для файлов SVG, называемую imagemin-svgo это зависит от svgo библиотека. После прохождения imagemin-svgo оптимизация, файл, наконец, копируется в папку назначения с webpack, из которых, без каких-либо опций, после оптимизации остается практически пустой файл:

icons.svg после оптимизации imagemin-svgo:

<svg xmlns="http://www.w3.org/2000/svg"/>

Короче говоря, я должен быть в состоянии передать варианты для imagemin-svgoили возможно svgo само по себе, так как я не хочу просто отключить всю оптимизацию.

0 ответов

Другие вопросы по тегам