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.
Common errors
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 }).
Warnings
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.
Install
npm install vite-plugin-minipic yarn add vite-plugin-minipic pnpm add vite-plugin-minipic Imports
- minipic wrong
import { minipic } from 'vite-plugin-minipic'correctimport minipic from 'vite-plugin-minipic' - MinipicOptions wrong
import { MinipicOptions } from 'vite-plugin-minipic'correctimport type { MinipicOptions } from 'vite-plugin-minipic' - minipic (CommonJS) wrong
const { minipic } = require('vite-plugin-minipic')correctconst minipic = require('vite-plugin-minipic')
Quickstart
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}']
})
]
})