# node-minify

> Javascript / CSS minifier based on Babel-minify / Butternut / YUI Compressor / Google Closure Compiler / UglifyJS2 / Sqwish / Clean-css / CSSO

Latest version **3.6.0** (published 2018-10-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install node-minify
pnpm add node-minify
yarn add node-minify
bun add node-minify
```

Provides the command `node-minify`.

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support; large bundle.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 3.6.0 |
| Published | 2018-10-24 |
| First published | 2011-06-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 21 |
| Unpacked size | 13.1 MB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 519 |
| Author | Rodolphe Stoclin |
| Maintainers | srod |
| Keywords | compressor, minify, minifier, yui, gcc, google, closure, compiler, uglifyjs, uglifyjs2, windows, sqwish, clean-css, csso, babel-minify, butternut |

## Links

- npm: https://www.npmjs.com/package/node-minify
- Repository: https://github.com/srod/node-minify
- Issues: https://github.com/srod/node-minify/issues
- npm.io page: https://npm.io/package/node-minify

## Dependencies (21)

- [ora](https://npm.io/package/ora.md) 3.0.0
- [csso](https://npm.io/package/csso.md) 3.5.1
- [depd](https://npm.io/package/depd.md) 1.1.2
- [glob](https://npm.io/package/glob.md) 7.1.3
- [chalk](https://npm.io/package/chalk.md) 2.4.1
- [crass](https://npm.io/package/crass.md) 0.12.3
- [mkdirp](https://npm.io/package/mkdirp.md) 0.5.1
- [sqwish](https://npm.io/package/sqwish.md) 0.2.2
- [terser](https://npm.io/package/terser.md) 3.10.2
- [butternut](https://npm.io/package/butternut.md) 0.4.6
- [clean-css](https://npm.io/package/clean-css.md) 4.2.1
- [commander](https://npm.io/package/commander.md) 2.19.0
- [gzip-size](https://npm.io/package/gzip-size.md) 5.0.0
- [uglify-es](https://npm.io/package/uglify-es.md) 3.3.9
- [uglify-js](https://npm.io/package/uglify-js.md) 3.4.9
- [babel-core](https://npm.io/package/babel-core.md) 6.26.3
- [node-version](https://npm.io/package/node-version.md) 1.2.0
- [html-minifier](https://npm.io/package/html-minifier.md) 3.5.20
- [update-notifier](https://npm.io/package/update-notifier.md) 2.5.0
- [babel-preset-minify](https://npm.io/package/babel-preset-minify.md) 0.5.0
- [google-closure-compiler](https://npm.io/package/google-closure-compiler.md) 20181008.0.0

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 3.6.0 (latest) — 2018-10-24
- 4.0.0-beta.6 (next) — 2018-10-24
- 2.0.0-beta.2 (beta) — 2016-10-12
- 4.0.0-beta.5 — 2018-10-20
- 3.5.1 — 2018-10-20
- 4.0.0-beta.4 — 2018-09-26
- 3.5.0 — 2018-09-20
- 3.4.0 — 2018-08-23
- 4.0.0-beta.3 — 2018-08-23
- 4.0.0-beta.2 — 2018-08-12
- 4.0.0-beta.1 — 2018-08-12
- 4.0.0-beta.0 — 2018-08-12
- 3.3.0 — 2018-08-11
- 3.2.1 — 2018-08-04
- 3.2.0 — 2018-08-04
- … 77 more at https://npm.io/package/node-minify/versions

## README

<p align="center"><img src="https://raw.githubusercontent.com/srod/node-minify/main/static/node-minify.svg" width="348" alt="node-minify"></p>

<p align="center">A very light minifier Node.js module.</p>

<p align="center">
  <br>
  <a href="https://npmjs.org/package/@node-minify/core"><img src="https://img.shields.io/npm/v/@node-minify/core.svg" alt="npm version"></a>
  <a href="https://npmjs.org/package/@node-minify/core"><img src="https://img.shields.io/npm/dm/@node-minify/core.svg" alt="npm downloads"></a>
  <a href="https://github.com/srod/node-minify/actions"><img alt="Build Status" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fsrod%2Fnode-minify%2Fbadge%3Fref%3Dmain&style=flat" /></a>
  <a href="https://codecov.io/gh/srod/node-minify"><img src="https://codecov.io/gh/srod/node-minify/branch/main/graph/badge.svg" alt="code coverage"></a>
  <a href="https://coderabbit.ai"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.coderabbit.ai%2Fstats%2Fgithub%2Fsrod%2Fnode-minify&query=%24.reviews&label=CodeRabbit%20Reviews&color=orange" alt="CodeRabbit PR reviews"></a>
</p>

# Features

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

**JavaScript:**

- [esbuild](https://node-minify.2clics.net/compressors/esbuild)
- [Google Closure Compiler](https://node-minify.2clics.net/compressors/gcc)
- [oxc](https://node-minify.2clics.net/compressors/oxc)
- [swc](https://node-minify.2clics.net/compressors/swc)
- [terser](https://node-minify.2clics.net/compressors/terser)
- [uglify-js](https://node-minify.2clics.net/compressors/uglify-js)

**CSS:**

- [clean-css](https://node-minify.2clics.net/compressors/clean-css)
- [cssnano](https://node-minify.2clics.net/compressors/cssnano)
- [CSSO](https://node-minify.2clics.net/compressors/csso)
- [esbuild](https://node-minify.2clics.net/compressors/esbuild)
- [lightningcss](https://node-minify.2clics.net/compressors/lightningcss)

**HTML:**

- [minify-html](https://node-minify.2clics.net/compressors/minify-html) - Rust-based, recommended
- [html-minifier](https://node-minify.2clics.net/compressors/html-minifier)

**JSON:**

- [jsonminify](https://node-minify.2clics.net/compressors/jsonminify)

**Image:**

- [sharp](https://node-minify.2clics.net/compressors/sharp) - WebP/AVIF conversion
- [svgo](https://node-minify.2clics.net/compressors/svgo) - SVG optimization
- [imagemin](https://node-minify.2clics.net/compressors/imagemin) - PNG/JPEG/GIF compression

**Other:**

- [No compress](https://node-minify.2clics.net/options#concatenate-files)

**Command Line Interface:**

- [CLI](https://node-minify.2clics.net/cli)

**Benchmark:**

- [Benchmark](https://node-minify.2clics.net/benchmark) - Compare compressor performance

**Upgrading:**

- [v11 Migration Guide](https://node-minify.2clics.net/guides/v11-migration) - 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

```bash
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

```bash
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

```bash
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

```bash
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

```bash
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

```js
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

```js
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](https://github.com/srod/node-minify/blob/main/examples/server.js)

## Documentation

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

## License

[MIT](LICENSE)

---
_Source: https://npm.io/package/node-minify · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
