Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–223 runs
build_error
glibcnode 18–223 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
compress
✓ import compress from 'vite-plugin-compress'
✗ const compress = require('vite-plugin-compress')
Package is ESM-only; no default CommonJS export.
compress
✓ import compress from 'vite-plugin-compress'
✗ import { compress } from 'vite-plugin-compress'
The default export is the plugin function, not a named export.
CompressOptions
✓ import type { CompressOptions } from 'vite-plugin-compress'
Type import for TypeScript users; not a runtime export.
Shows full configuration with all options for vite-plugin-compress, including quality, threshold, exclude, extensions, svgo, pngquant, brotli, and verbose.
// vite.config.ts
import compress from 'vite-plugin-compress'
export default {
plugins: [
compress({
quality: 11,
threshold: 1501,
exclude: ['ssr-manifest.json'],
extensions: ['.html', '.js', '.css', '.svg', '.json'],
svgo: { plugins: [{ removeViewBox: false, removeDimensions: true }] },
pngquant: { quality: [0.6, 0.8] },
brotli: true,
verbose: true
}),
],
}
Debug
Known issues
breakingDefault exported function changed from named export to default export in v2fixUse import compress from 'vite-plugin-compress' instead of import { compress } from 'vite-plugin-compress' affects: >=2.0.0
gotchaFiles smaller than threshold (default 1501 bytes) are not compressed; this may cause confusion if expecting all files to be compressed.fixSet threshold: 0 to compress all files regardless of size
affects: >=1.0.0
deprecatedThe 'brotli' option defaults to true; setting it to false disables Brotli compression but may leave files uncompressed.fixExplicitly set brotli: true if you want Brotli compression (no change needed), or set brotli: false if you want to disable it
affects: >=1.0.0
gotchaSVG optimization by default removes dimensions; may break layout if relying on viewBox and dimensions.fixOverride svgo plugins: [{ removeDimensions: false }] affects: >=1.0.0
gotchaPNG optimization uses imagemin-pngquant; may produce banding if quality settings are too aggressive.fixSet pngquant quality range e.g. quality: [0.6, 0.8] for better results
affects: >=1.0.0
gotchaPlugin compresses both Vite-generated assets and public folder files; public files are compressed in-place which may affect development workflow.fixExclude specific public files using the 'exclude' option
affects: >=1.0.0
breakingv1.x and v2.x are incompatible due to import pattern change; migration required.fixUpdate import statement: from 'import { compress }' to 'import compress' affects: >=2.0.0 || <2.0.0
Errors
Common errors & fixes
Error: The plugin 'vite-plugin-compress' doesn't appear to be a valid Vite plugin.
Using named import { compress } instead of default import in v2.
fixUse: import compress from 'vite-plugin-compress'
[vite-plugin-compress] Could not find module 'imagemin-pngquant'
Missing peer dependency for PNG optimization.
fixInstall imagemin-pngquant: npm install imagemin-pngquant
TypeError: compress is not a function
Importing as a named export when using CommonJS require in ESM context.
fixUse default import: import compress from 'vite-plugin-compress'
Error: Cannot find module 'vite-plugin-compress'
Package not installed or not added to package.json.
fixRun: npm install vite-plugin-compress
Audit
Dependencies
viterequiredpeer dependency, requires Vite >2.0.0-0