Skip to content

Repository files navigation

node-minify

A very light minifier Node.js module.


npm version npm downloads Build Status code coverage CodeRabbit 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:

Upgrading:

  • v11 Migration Guide - Run npx --package=@node-minify/cli -- node-minify doctor to scan your project

Requirements

  • Node.js: 22 or higher
  • Module System: ESM only ("type": "module" in package.json)

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       # 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

CSS Compressors

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

HTML & Other

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

Image Compressors

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

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);

More examples

Documentation

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

License

MIT

Releases

Used by

Contributors

Languages