sharp

Status: Recommended

sharp converts and compresses images to WebP, AVIF, PNG, and JPEG formats using the high-performance sharp library.

Installation

npm install @node-minify/core @node-minify/sharp

Usage

import { readFileSync } from 'node:fs';
import { minify } from '@node-minify/core';
import { sharp } from '@node-minify/sharp';

// Convert PNG to WebP
const result = await minify({
  compressor: sharp,
  content: readFileSync('image.png'),
  options: {
    format: 'webp',
    quality: 80
  }
});

Multi-format Output

Convert to multiple formats simultaneously:

const result = await minify({
  compressor: sharp,
  content: readFileSync('image.png'),
  options: {
    formats: ['webp', 'avif'],
    quality: 80
  }
});

Options

Option Type Default Description
format 'webp' | 'avif' | 'png' | 'jpeg' 'webp' Output format for single conversion
formats Array<'webp' | 'avif'> - Multiple output formats
quality number 80 Quality setting (1-100)
lossless boolean false Use lossless compression
effort number 4 CPU effort/compression level (0-9 for AVIF/PNG, 0-6 for WebP)

Check all options