{"id":22616,"library":"vite-plugin-compress","title":"vite-plugin-compress","description":"Vite plugin to compress bundle and assets using Brotli, SVGO, and imagemin. Current stable version is 2.1.1, with a release cadence of major and minor patches. Key differentiators: compression of Vite-generated assets and public folder files, SVG and PNG optimization, respect for MTU threshold (1501 bytes), and compatibility with vite-ssr. Alternatives include rollup-plugin-compress but this is Vite-native.","status":"active","version":"2.1.1","language":"javascript","source_language":"en","source_url":"https://github.com/alloc/vite-plugin-compress","tags":["javascript","vite","vite-plugin","compress","brotli","imagemin","pngquant","svgo"],"install":[{"cmd":"npm install vite-plugin-compress","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-compress","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-compress","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency, requires Vite >2.0.0-0","package":"vite","optional":false}],"imports":[{"note":"Package is ESM-only; no default CommonJS export.","wrong":"const compress = require('vite-plugin-compress')","symbol":"compress","correct":"import compress from 'vite-plugin-compress'"},{"note":"The default export is the plugin function, not a named export.","wrong":"import { compress } from 'vite-plugin-compress'","symbol":"compress","correct":"import compress from 'vite-plugin-compress'"},{"note":"Type import for TypeScript users; not a runtime export.","wrong":"","symbol":"CompressOptions","correct":"import type { CompressOptions } from 'vite-plugin-compress'"}],"quickstart":{"code":"// vite.config.ts\nimport compress from 'vite-plugin-compress'\n\nexport default {\n  plugins: [\n    compress({\n      quality: 11,\n      threshold: 1501,\n      exclude: ['ssr-manifest.json'],\n      extensions: ['.html', '.js', '.css', '.svg', '.json'],\n      svgo: { plugins: [{ removeViewBox: false, removeDimensions: true }] },\n      pngquant: { quality: [0.6, 0.8] },\n      brotli: true,\n      verbose: true\n    }),\n  ],\n}","lang":"typescript","description":"Shows full configuration with all options for vite-plugin-compress, including quality, threshold, exclude, extensions, svgo, pngquant, brotli, and verbose."},"warnings":[{"fix":"Use import compress from 'vite-plugin-compress' instead of import { compress } from 'vite-plugin-compress'","message":"Default exported function changed from named export to default export in v2","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Set threshold: 0 to compress all files regardless of size","message":"Files smaller than threshold (default 1501 bytes) are not compressed; this may cause confusion if expecting all files to be compressed.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Explicitly set brotli: true if you want Brotli compression (no change needed), or set brotli: false if you want to disable it","message":"The 'brotli' option defaults to true; setting it to false disables Brotli compression but may leave files uncompressed.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Override svgo plugins: [{ removeDimensions: false }]","message":"SVG optimization by default removes dimensions; may break layout if relying on viewBox and dimensions.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set pngquant quality range e.g. quality: [0.6, 0.8] for better results","message":"PNG optimization uses imagemin-pngquant; may produce banding if quality settings are too aggressive.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Exclude specific public files using the 'exclude' option","message":"Plugin compresses both Vite-generated assets and public folder files; public files are compressed in-place which may affect development workflow.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Update import statement: from 'import { compress }' to 'import compress'","message":"v1.x and v2.x are incompatible due to import pattern change; migration required.","severity":"breaking","affected_versions":">=2.0.0 || <2.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use: import compress from 'vite-plugin-compress'","cause":"Using named import { compress } instead of default import in v2.","error":"Error: The plugin 'vite-plugin-compress' doesn't appear to be a valid Vite plugin."},{"fix":"Install imagemin-pngquant: npm install imagemin-pngquant","cause":"Missing peer dependency for PNG optimization.","error":"[vite-plugin-compress] Could not find module 'imagemin-pngquant'"},{"fix":"Use default import: import compress from 'vite-plugin-compress'","cause":"Importing as a named export when using CommonJS require in ESM context.","error":"TypeError: compress is not a function"},{"fix":"Run: npm install vite-plugin-compress","cause":"Package not installed or not added to package.json.","error":"Error: Cannot find module 'vite-plugin-compress'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}