vite-plugin-minipic

raw JSON →
1.3.2 verified Mon Apr 27 auth: no javascript

vite-plugin-minipic (v1.3.2) is a build-time image compression plugin for Vite projects, leveraging sharp.js for fast compression (e.g., 40MB images in ~3s, 70-80% reduction). It includes disk caching to avoid re-compression, supports format conversion (e.g., PNG to WebP), and handles public folder images. Unlike imagemin-based plugins, minipic offers higher speed and optional cache control. Requires Node.js and sharp native binding; install issues common on Windows or with mismatched Node versions. Ships TypeScript types and is updated irregularly.

error Error: Cannot find module 'sharp'
cause Missing or failed installation of sharp native binary.
fix
Reinstall: npm install sharp@latest; if fails, follow install instructions with npmmirror registry.
error Error [ERR_REQUIRE_ESM]: require() of ES Module .../vite-plugin-minipic/dist/index.mjs from ... not supported.
cause Trying to use the plugin with CommonJS require() in a Node.js version that doesn't support ESM.
fix
Use dynamic import: const minipic = (await import('vite-plugin-minipic')).default; or use ESM config file.
error TypeError: minipic is not a function
cause Using named import instead of default import in ESM.
fix
import minipic from 'vite-plugin-minipic' (not { minipic }).
breaking vite-plugin-minipic requires Vite >=3.x; may not work with Vite 2.
fix Upgrade Vite to version 3 or later.
gotcha sharp native binary installation fails on some environments (e.g., Windows missing build tools).
fix Set .npmrc: sharp_binary_host=https://registry.npmmirror.com/-/binary/sharp and run npm install.
deprecated The 'convertPublic' option has been deprecated since v1.1.0.
fix Use 'convert' option with include/exclude patterns instead.
gotcha Cache is stored in node_modules/.cache/minipic; clearing node_modules will delete cache.
fix Use persistent cache location via environment variables or avoid full node_modules deletion.
breaking In v1.2.0, the default value for 'cache' changed from false to true.
fix Set cache: false explicitly if you want to disable caching.
npm install vite-plugin-minipic
yarn add vite-plugin-minipic
pnpm add vite-plugin-minipic

Configures vite-plugin-minipic with sharp quality options, format conversion, and cache enabled.

import minipic from 'vite-plugin-minipic'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    minipic({
      sharpOptions: {
        png: { quality: 70 },
        jpeg: { quality: 70 },
        webp: { quality: 75 }
      },
      convert: [
        { from: 'png', to: 'webp' },
        { from: 'jpeg', to: 'jpg' }
      ],
      cache: true,
      exclude: [],
      include: ['**/*.{png,jpg,jpeg,webp}']
    })
  ]
})