Skip to content

image-manifest

image-manifest

CLI-інструмент, який конвертує зображення у потрібний формат, генерує структуру файлів у форматі JSON та за потреби змінює розміри. Корисний для статичних сайтів, галерей та автоматизації.

npx image-manifest --help покаже всі доступні опції.

📖 Приклад використання

Створіть папку img-src

shell
mkdir img-src

Помістіть зображення в img-src

shell
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Додати розміри зображень (ширину та висоту) в JSONfalse
--manifest-onlyЛише згенерувати JSON-маніфест, без конвертації зображеньfalse
--interactive, -iПримусовий інтерактивний режим, навіть якщо передано аргументиfalse

✨ Приклади

shell
# Конвертувати всі зображення в 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.js
  • image-manifest.config.js
  • властивість "image-manifest" у package.json

Приклад .image-manifestrc.json:

json
{
  "src": "my-images",
  "format": "webp",
  "json": "gallery",
  "width": 1200,
  "includeSize": true
}

Коли ви запускаєте npx image-manifest без аргументів, автоматично використовується файл конфігурації, якщо він існує. Інакше запускається інтерактивний режим.

📦 Програмний API

Ви також можете використовувати image-manifest як бібліотеку у власних скриптах.

ts
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 можуть імпортувати типи маніфесту:

ts
import type { ImageManifest, ImageFile } from 'image-manifest';