Skip to content

Repository files navigation

node-minify

A very light minifier Node.js module.


npm versionnpm downloadsBuild Statuscode coverageCodeRabbit PR reviews

Features

It allows you to compress JavaScript, CSS, HTML, and image files.

JavaScript:

CSS:

HTML:

JSON:

Image:

  • sharp - WebP/AVIF conversion
  • svgo - SVG optimization
  • imagemin - PNG/JPEG/GIF compression

Other:

Command Line Interface:

Benchmark:

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 Compilerconstresult=awaitminify({compressor: gcc,input: 'foo.js',output: 'bar.js'});// Using terser with wildcardsconstmin=awaitminify({compressor: terser,input: 'src/**/*.js',output: 'dist/bundle.js'});// Using Promiseminify({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';consthtml=`<!doctype html><html> <head> <meta charset="utf-8"> </head></html>`;constmin=awaitminify({compressor: htmlMinifier,content: html});console.log(min);

More examples

Documentation

Visit https://node-minify.2clics.net for full documentation.

License

MIT

Releases

Used by

Contributors

Languages