{"id":26003,"library":"node-minify","title":"node-minify","description":"A modular JavaScript/TypeScript minification library supporting multiple compressors: Babel-minify, UglifyJS, Terser, Google Closure Compiler, Clean-css, CSSO, esbuild, and more. Current stable version is 10.5.0 (2025+). Released regularly with minor updates. Key differentiators: unified API for JS and CSS minifiers, works in Node.js (>=6) and browsers, ESM-only since v10, actively maintained with modern compressor support like esbuild and Lightning CSS. Also provides a CLI and image minification via imagemin.","status":"active","version":"3.6.0","language":"javascript","source_language":"en","source_url":"https://github.com/srod/node-minify","tags":["javascript","compressor","minify","minifier","yui","gcc","google","closure","compiler"],"install":[{"cmd":"npm install node-minify","lang":"bash","label":"npm"},{"cmd":"yarn add node-minify","lang":"bash","label":"yarn"},{"cmd":"pnpm add node-minify","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"core package providing the minify() function and compressor registry","package":"@node-minify/core","optional":false},{"reason":"shared TypeScript types for compressor options","package":"@node-minify/types","optional":true},{"reason":"used in the CLI package for command-line parsing","package":"commander","optional":true}],"imports":[{"note":"minify is a named export, not default. Common mistake.","wrong":"import minify from '@node-minify/core'","symbol":"minify","correct":"import { minify } from '@node-minify/core'"},{"note":"Each compressor is exported as default from its own package.","wrong":"import { babelMinify } from '@node-minify/babel-minify'","symbol":"babelMinify","correct":"import babelMinify from '@node-minify/babel-minify'"},{"note":"Compressors are not re-exported from core; must install and import each separately.","wrong":"import { terser } from '@node-minify/core'","symbol":"terser","correct":"import terser from '@node-minify/terser'"},{"note":"Package is ESM-only since v10. require() will fail with ERR_REQUIRE_ESM.","wrong":"const cleanCSS = require('@node-minify/clean-css')","symbol":"cleanCSS","correct":"import cleanCSS from '@node-minify/clean-css'"},{"note":"The global package 'node-minify' is deprecated; use @node-minify/cli for CLI tool.","wrong":"import { nodeMinify } from 'node-minify'","symbol":"nodeMinify","correct":"import nodeMinify from '@node-minify/cli'"}],"quickstart":{"code":"import { minify } from '@node-minify/core';\nimport terser from '@node-minify/terser';\nimport cleanCSS from '@node-minify/clean-css';\n\n// Minify JavaScript with Terser\nminify({\n  compressor: terser,\n  input: 'input.js',\n  output: 'output.min.js',\n  callback: (err, res) => {\n    if (err) console.error(err);\n    else console.log('JS minified successfully');\n  }\n});\n\n// Minify CSS with Clean-css\nminify({\n  compressor: cleanCSS,\n  input: 'styles.css',\n  output: 'styles.min.css',\n  callback: (err, res) => {\n    if (err) console.error(err);\n    else console.log('CSS minified successfully');\n  }\n});","lang":"typescript","description":"Shows minification of JS using Terser and CSS using Clean-css with the core minify() function."},"warnings":[{"fix":"Switch to import syntax and ensure package.json has 'type': 'module'.","message":"v10 drops support for CommonJS (require). Only ESM imports are supported.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Replace with @node-minify/core and specific compressor packages.","message":"The 'node-minify' package (global) is deprecated; use @node-minify/* scoped packages.","severity":"deprecated","affected_versions":">=9.0.0"},{"fix":"Use minify({...}) which returns a Promise.","message":"Callback-based API removed in v9; use promises or async/await.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"Use 'import terser from '@node-minify/terser'', not '{ terser }'.","message":"Compressors are imported as default exports, not named exports.","severity":"gotcha","affected_versions":"*"},{"fix":"Use @node-minify/core, @node-minify/terser, etc.","message":"v10 renames all packages to @node-minify scoped; old package names like 'node-minify' no longer publish.","severity":"breaking","affected_versions":">=10.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Add 'type': 'module' to package.json or use import syntax.","cause":"Using require() on an ESM-only package.","error":"ERR_REQUIRE_ESM package '@node-minify/core' is ESM (ES Module) but your script is CommonJS"},{"fix":"import { minify } from '@node-minify/core' instead of import minify from '@node-minify/core'.","cause":"Importing default export instead of named export.","error":"TypeError: minify is not a function"},{"fix":"npm install @node-minify/core.","cause":"Package not installed or wrong package name.","error":"Cannot find module '@node-minify/core'"},{"fix":"Use import or enable ESM in your environment.","cause":"Using CommonJS syntax (require) for ESM package.","error":"SyntaxError: Unexpected token 'export'"},{"fix":"Install the appropriate @node-minify/* package and import the default export.","cause":"Referencing a compressor not installed or incorrectly spelled.","error":"Error: No such compressor: ..."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}