image-manifest

CLI-інструмент, який конвертує зображення у потрібний формат, генерує структуру файлів у форматі JSON та за потреби змінює розміри. Корисний для статичних сайтів, галерей та автоматизації.
npx image-manifest --help покаже всі доступні опції.
📖 Приклад використання
Створіть папку img-src
mkdir img-srcПомістіть зображення в img-src
npx image-manifest@latest💻 Параметри командного рядка
| Параметр | Опис | За замовчуванням |
|---|---|---|
--src, -s | Назва вихідної папки | img-src |
--dist, -d | Назва папки з результатом | img-dist |
--format, -f | Формат виходу: webp, jpg, png, avif або оригінальний (original) | webp |
--json, -j | Ім’я JSON-файлу (або --no-json, щоб пропустити) | null |
--width, -W | Максимальна ширина зображення в пікселях | null |
--height, -H | Максимальна висота зображення в пікселях | null |
--concurrency, -c | Максимальна кількість паралельних завдань обробки зображень | 5 |
--include-size | Додати розміри зображень (ширину та висоту) в JSON | false |
--manifest-only | Лише згенерувати JSON-маніфест, без конвертації зображень | false |
--interactive, -i | Примусовий інтерактивний режим, навіть якщо передано аргументи | false |
✨ Приклади
# Конвертувати всі зображення в webp (за замовчуванням) і створити маніфест
npx image-manifest --json static-images --format original
# Змінити розмір до максимальної висоти 2000px, інша вихідна папка
npx image-manifest --src sources --height 2000
# Тільки створити JSON-маніфест з наявних зображень (без обробки)
npx image-manifest --manifest-only --json gallery --src myimages
# Запустити інтерактивний режим (запитує всі параметри)
npx image-manifest --interactive⚙️ Файл конфігурації
Ви можете зберігати налаштування у файлі конфігурації, замість того щоб передавати їх у командному рядку. Допустимі файли (пошук у поточній директорії та вище):
.image-manifestrc.json.image-manifestrc.yaml.image-manifestrc.yml.image-manifestrc.jsimage-manifest.config.js- властивість
"image-manifest"уpackage.json
Приклад .image-manifestrc.json:
{
"src": "my-images",
"format": "webp",
"json": "gallery",
"width": 1200,
"includeSize": true
}Коли ви запускаєте npx image-manifest без аргументів, автоматично використовується файл конфігурації, якщо він існує. Інакше запускається інтерактивний режим.
📦 Програмний API
Ви також можете використовувати image-manifest як бібліотеку у власних скриптах.
import { run } from 'image-manifest';
await run({
src: 'photos',
dist: 'output',
format: 'webp',
json: 'manifest',
width: 800,
height: null,
concurrency: 4,
includeSize: true,
// manifestOnly: true // розкоментуйте, щоб пропустити конвертацію
});Користувачі TypeScript можуть імпортувати типи маніфесту:
import type { ImageManifest, ImageFile } from 'image-manifest';