A very light minifier Node.js module.
It allows you to compress JavaScript, CSS, HTML, and image files.
JavaScript:
CSS:
HTML:
- minify-html - Rust-based, recommended
- html-minifier
JSON:
Image:
Other:
Command Line Interface:
Benchmark:
- Benchmark - Compare compressor performance
Upgrading:
- v11 Migration Guide - Run
npx --package=@node-minify/cli -- node-minify doctorto scan your project
- Node.js: 22 or higher
- Module System: ESM only (
"type": "module"in package.json)
npm install @node-minify/core # Or Yarn yarn add @node-minify/core # Or pnpm pnpm add @node-minify/core # Or Bun bun add @node-minify/core
And install the compressor(s) you want:
npm install @node-minify/terser # Recommended - modern, fast, well-maintained npm install @node-minify/esbuild # Recommended - extremely fast, also handles CSS npm install @node-minify/swc # Recommended - Rust-based, very fast npm install @node-minify/oxc # Recommended - Rust-based, cutting-edge npm install @node-minify/uglify-js # Supported - classic, battle-tested npm install @node-minify/google-closure-compiler # Supported - advanced optimizations
npm install @node-minify/lightningcss # Recommended - Rust-based, fastest npm install @node-minify/cssnano # Recommended - PostCSS-based, customizable npm install @node-minify/esbuild # Recommended - also handles JS npm install @node-minify/clean-css # Supported - feature-rich, reliable npm install @node-minify/csso # Supported - structural optimizations
npm install @node-minify/minify-html # Recommended - Rust-based, fastest npm install @node-minify/html-minifier # Supported - feature-rich HTML minification npm install @node-minify/jsonminify # Legacy - JSON minification
npm install @node-minify/sharp # Recommended - WebP/AVIF conversion, high performance npm install @node-minify/svgo # Recommended - SVG optimization npm install @node-minify/imagemin # Supported - PNG/JPEG/GIF compression
import { minify } from '@node-minify/core'; import { gcc } from '@node-minify/google-closure-compiler'; import { terser } from '@node-minify/terser'; // Using Google Closure Compiler const result = await minify({ compressor: gcc, input: 'foo.js', output: 'bar.js' }); // Using terser with wildcards const min = await minify({ compressor: terser, input: 'src/**/*.js', output: 'dist/bundle.js' }); // Using Promise minify({ compressor: terser, input: 'src/**/*.js', output: 'dist/bundle.js' }).then((min) => { console.log(min); });
import { minify } from '@node-minify/core'; import { htmlMinifier } from '@node-minify/html-minifier'; const html = ` <!doctype html> <html> <head> <meta charset="utf-8"> </head> </html>`; const min = await minify({ compressor: htmlMinifier, content: html }); console.log(min);
Visit https://node-minify.2clics.net for full documentation.