Files
site-portfolio/docs/image-optimization.md

42 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Оптимизация картинок: PNG / JPEG → WebP рядом
Скрипт `scripts/optimize-images.mjs` обходит **вложенные** папки и для каждого `.png`, `.jpg`, `.jpeg` создаёт рядом `то же имя.webp`.
- Размер в пикселях **не меняется**.
- WebP с **качеством 90** (и `alphaQuality: 100` для прозрачного PNG) — сильно не жмёт, ориентир на визуально близкий результат к исходнику при меньшем весе файла.
- **Повторный запуск:** если `имя.webp` уже есть и **новее или того же возраста**, что и исходник, файл **пропускается** (чтобы не гонять лишний раз). После правки картинки снова запусти скрипт, либо удали `webp`, либо используй `--force`.
## Требования
- **Node.js**;
- пакет `sharp` (ставится вместе с `npm install` в корне репозитория).
## Запуск
Из корня репозитория (где `package.json`), укажи **папку с картинками** (относительно корня или абсолютный путь):
```bash
npm run optimize-images -- public/assets/cases/мой-кейс/img
```
либо:
```bash
node scripts/optimize-images.mjs public/assets/cases/мой-кейс/img
```
Пересоздать все WebP, даже если по дате «свежее»:
```bash
npm run optimize-images -- public/assets/cases/мой-кейс/img --force
```
В PowerShell, если в пути есть пробелы:
```powershell
npm run optimize-images -- "public\assets\cases\мой-кейс\img"
```
## Когда картинка не трогается
См. выше: если `foo.webp` есть и **не старше** `foo.png` / `foo.jpg`, `foo` пропускается, кроме режима `--force`.