РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗tlVtBdIl 57 of 72 menu
◀ ▶

Мелкие файлы в Vite

Мелкий файл ниже порога попадает в код как адрес data, а не отдельным файлом.

Каждый отдельный файл картинки - это лишний запрос браузера. Vite может встроить маленький ресурс прямо в JavaScript или CSS в виде длинного адреса data:. Порог задаёт поле build.assetsInlineLimit в байтах. Файл меньше порога не копируется в каталог ассетов.

Рядом с модулем лежит компактный svg:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 16"> <text x="2" y="12" font-size="10">hello</text> </svg>

Порог поставим 8192 - это больше размера такого svg, значит встроение сработает:

import { defineConfig } from 'vite' export default defineConfig({ build: { assetsInlineLimit: 8192, }, })

Импорт картинки и текст hello на странице:

import markUrl from './mark.svg' const img = document.createElement('img') img.src = markUrl document.body.append(img) document.querySelector('#app').textContent = 'hello'

Выполним сборку:

npm run build

Откроем JavaScript-файл в dist/assets. Внутри будет строка, начинающаяся с data:image/svg+xml, а отдельного mark с расширением svg в каталоге ассетов не будет.

Создайте src/dot.svg с текстом hello, импортируйте его в src/main.js, поднимите порог встраивания до 4096, соберите проект и найдите data: в итоговом скрипте.

Поставьте порог встраивания в 0, пересоберите проект со словом ready на странице и проверьте, что svg снова лежит отдельным файлом в dist/assets.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить