A very light minifier Node.js module.
Features
It allows you to compress JavaScript, CSS, HTML, and image files.
JavaScript:
- esbuild
- Google Closure Compiler
- oxc
- swc
- terser
- uglify-js
- babel-minify (deprecated)
- uglify-es (deprecated)
- YUI Compressor (deprecated)
CSS:
- clean-css
- cssnano
- CSSO
- esbuild
- lightningcss
- crass (deprecated)
- sqwish (deprecated)
- YUI Compressor (deprecated)
HTML:
JSON:
Image:
Other:
Command Line Interface:
Benchmark:
- Benchmark - Compare compressor performance
Installation
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:
JavaScript Compressors
npm install @node-minify/terser # Recommended - modern, fast, well-maintained npm install @node-minify/esbuild # Extremely fast, also handles CSS npm install @node-minify/swc # Rust-based, very fast npm install @node-minify/oxc # Rust-based, cutting-edge npm install @node-minify/uglify-js # Classic, battle-tested npm install @node-minify/google-closure-compiler # Advanced optimizations
CSS Compressors
npm install @node-minify/lightningcss # Recommended - Rust-based, fastest npm install @node-minify/esbuild # Also handles JS npm install @node-minify/clean-css # Feature-rich, reliable npm install @node-minify/cssnano # PostCSS-based, customizable npm install @node-minify/csso # Structural optimizations
HTML & Other
npm install @node-minify/html-minifier # HTML minification npm install @node-minify/jsonminify # JSON minification
Image Compressors
npm install @node-minify/sharp # WebP/AVIF conversion, high performance npm install @node-minify/svgo # SVG optimization npm install @node-minify/imagemin # PNG/JPEG/GIF compression
Quick Start
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); });
In memory
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);
Documentation
Visit https://node-minify.2clics.net for full documentation.