vite-plugin-compression2
raw JSON → 2.5.3 verified Sat Apr 25 auth: no javascript
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.
Common errors
error Cannot find module 'vite-plugin-compression2' ↓
cause Missing package installation or wrong package name (confusing with 'vite-plugin-compression').
fix
Install the correct package:
npm install vite-plugin-compression2 -D error Error: Option 'algorithms' is not an array ↓
cause Passing a single string instead of an array for the algorithms option.
fix
Use
algorithms: ['gzip'] (array) instead of algorithms: 'gzip'. error TypeError: compression is not a function ↓
cause Importing default export instead of named export.
fix
Use
import { compression } from 'vite-plugin-compression2' Warnings
deprecated Option `filter` is deprecated in favor of `include` and `exclude`. ↓
fix Use `include` and `exclude` options instead of `filter`.
gotcha The `filename` option must include placeholders like `[path]`, `[base]`, etc. or it will produce unexpected names. ↓
fix Use default filename pattern or provide a string with placeholders (e.g., `[path][base].gz`).
breaking v2.x changed from a single algorithm option to an `algorithms` array. Old `algorithm` option no longer works. ↓
fix Use `algorithms: ['gzip']` instead of `algorithm: 'gzip'`.
deprecated Node.js versions below 14 may not support built-in zstd if using Node 19+. ↓
fix Ensure Node.js version >= 19 for zstd support, or use a custom algorithm.
gotcha When using `deleteOriginalAssets: true`, the original uncompressed files are removed; ensure you have a backup or use tarball. ↓
fix Set `deleteOriginalAssets: false` or use the tarball plugin to archive.
Install
npm install vite-plugin-compression2 yarn add vite-plugin-compression2 pnpm add vite-plugin-compression2 Imports
- compression wrong
import compression from 'vite-plugin-compression2'correctimport { compression } from 'vite-plugin-compression2' - defineAlgorithm wrong
import { defineAlgorithm } from 'vite-plugin-compression'correctimport { defineAlgorithm } from 'vite-plugin-compression2' - tarball wrong
const { tarball } = require('vite-plugin-compression2')correctimport { tarball } from 'vite-plugin-compression2'
Quickstart
import { defineConfig } from 'vite'
import { compression } from 'vite-plugin-compression2'
export default defineConfig({
plugins: [
compression({
include: /\\.(html|xml|css|json|js|mjs|svg|yaml|yml|toml)$/,
threshold: 1024,
algorithms: ['gzip', 'brotliCompress'],
deleteOriginalAssets: false
})
]
})