{"id":20662,"library":"vite-plugin-compression2","title":"vite-plugin-compression2","description":"A Vite plugin for compressing build assets using Node.js built-in compression algorithms (gzip, brotliCompress, deflate) and custom algorithms like zstd. Supports multiple algorithms, custom filenames, tarball creation, and artifact hooks. Current stable version is 2.5.3, released under MIT license. Differentiates from vite-plugin-compression by supporting multiple algorithms in one plugin, zstd via Node.js built-in, and better TypeScript typing.","status":"active","version":"2.5.3","language":"javascript","source_language":"en","source_url":"https://github.com/nonzzz/vite-plugin-compression","tags":["javascript","vite","vite-plugin","compress","typescript"],"install":[{"cmd":"npm install vite-plugin-compression2","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-compression2","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-compression2","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Named export, not default export.","wrong":"import compression from 'vite-plugin-compression2'","symbol":"compression","correct":"import { compression } from 'vite-plugin-compression2'"},{"note":"The package name is 'vite-plugin-compression2', not 'vite-plugin-compression'.","wrong":"import { defineAlgorithm } from 'vite-plugin-compression'","symbol":"defineAlgorithm","correct":"import { defineAlgorithm } from 'vite-plugin-compression2'"},{"note":"The plugin is ESM-only; require is not supported.","wrong":"const { tarball } = require('vite-plugin-compression2')","symbol":"tarball","correct":"import { tarball } from 'vite-plugin-compression2'"}],"quickstart":{"code":"import { defineConfig } from 'vite'\nimport { compression } from 'vite-plugin-compression2'\n\nexport default defineConfig({\n  plugins: [\n    compression({\n      include: /\\\\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,\n      threshold: 1024,\n      algorithms: ['gzip', 'brotliCompress'],\n      deleteOriginalAssets: false\n    })\n  ]\n})","lang":"typescript","description":"Basic Vite configuration enabling gzip and brotli compression for build assets, with minimum size threshold."},"warnings":[{"fix":"Use `include` and `exclude` options instead of `filter`.","message":"Option `filter` is deprecated in favor of `include` and `exclude`.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use default filename pattern or provide a string with placeholders (e.g., `[path][base].gz`).","message":"The `filename` option must include placeholders like `[path]`, `[base]`, etc. or it will produce unexpected names.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Use `algorithms: ['gzip']` instead of `algorithm: 'gzip'`.","message":"v2.x changed from a single algorithm option to an `algorithms` array. Old `algorithm` option no longer works.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Ensure Node.js version >= 19 for zstd support, or use a custom algorithm.","message":"Node.js versions below 14 may not support built-in zstd if using Node 19+.","severity":"deprecated","affected_versions":">=2.1.0"},{"fix":"Set `deleteOriginalAssets: false` or use the tarball plugin to archive.","message":"When using `deleteOriginalAssets: true`, the original uncompressed files are removed; ensure you have a backup or use tarball.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install the correct package: `npm install vite-plugin-compression2 -D`","cause":"Missing package installation or wrong package name (confusing with 'vite-plugin-compression').","error":"Cannot find module 'vite-plugin-compression2'"},{"fix":"Use `algorithms: ['gzip']` (array) instead of `algorithms: 'gzip'`.","cause":"Passing a single string instead of an array for the algorithms option.","error":"Error: Option 'algorithms' is not an array"},{"fix":"Use `import { compression } from 'vite-plugin-compression2'`","cause":"Importing default export instead of named export.","error":"TypeError: compression is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}