Registry / devops / metro-minify-terser

metro-minify-terser

JSON →
library0.84.4jsnpmunverified

Official Terser-based minifier plugin for Metro, the JavaScript bundler for React Native. Current stable version is 0.84.4, released ~monthly alongside Metro. Replaces the default metro-minify-uglify with modern ES6+ support via Terser. Key differentiator: integrates seamlessly with Metro's build pipeline, supports ES modules and modern syntax, and is the recommended minifier for React Native apps targeting ES6+ environments. Ships TypeScript type definitions since v0.83.5.

npm install metro-minify-terser
INSTALL
IMPORT
SIG · METRO-MINIFY-TERSE
M
metro-minify-terser
devopsjavascriptv0.84.4
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import metroMinifyTerser from 'metro-minify-terser'
const metroMinifyTerser = require('metro-minify-terser')
ESM-only since v0.84; no default export in older versions.
minify
import { minify } from 'metro-minify-terser'
import { minify } from 'terser'
Named export for direct usage; consider Terser's own API for non-Metro use.
MetroMinifyTerser
import type { MetroMinifyTerser } from 'metro-minify-terser'
TypeScript type export; available in v0.83.5+.

Sets metro-minify-terser as the custom minifier in Metro's config with optional Terser options.

import metroMinifyTerser from 'metro-minify-terser'; // In metro.config.js: module.exports = { transformer: { minifierConfig: { ecma: 8, module: true }, }, minifier: metroMinifyTerser, };
Debug
Known issues
breakingv0.84.0 dropped support for Node.js v21 and v23. Minimum Node version is now ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0.
fix
Upgrade Node to a supported version.
affects: >=0.84.0 <0.85.0
deprecatedMetro 0.80+ has deprecated metro-minify-uglify in favor of this package. Terser provides better ES6+ support.
fix
Switch to metro-minify-terser as the minifier.
affects: >=0.80.0
brokenTypeScript types were missing in v0.83.0–v0.83.4 due to accidental removal.
fix
Upgrade to v0.83.5+ to restore TypeScript definitions.
affects: >=0.83.0 <0.83.5
gotchaIf using custom minifier config, ensure it's valid for Terser. Invalid options (e.g., mismatched ecma version) may cause silent failures.
fix
Validate Terser options using Terser's own API before passing to Metro.
affects: >=0.1.0
deprecatedIn Metro 0.84, the package became ESM-only. CommonJS require() will fail.
fix
Use import syntax or dynamic import() if needed.
affects: >=0.84.0
Errors
Common errors & fixes
Error: Cannot find module 'metro-minify-terser'
Package not installed or missing in node_modules.
fix
Run 'npm install --save-dev metro-minify-terser' or 'yarn add --dev metro-minify-terser'.
TypeError: metroMinifyTerser is not a function
Using default import incorrectly; package exported as a function in older versions.
fix
Check version: v0.84+ uses default export as a function; for older versions, use destructured import: const { minifier } = require('metro-minify-terser')
Module 'metro-minify-terser' has no exported member 'minify'
Attempting to import a non-existent named export.
fix
Import default: import metroMinifyTerser from 'metro-minify-terser' (v0.84+) or use: const metroMinifyTerser = require('metro-minify-terser').default (older CJS).
Error: Terser minification failed: Unexpected token 'export'
Minifier config ecma version too low (e.g., ecma: 5) while code uses ES modules.
fix
Set minifierConfig.ecma to 8 or above, and ensure module: true if using ES modules.
Upgrade
Version history
0.84.4latest on npm
Audit
Dependencies
metro-source-mapoptionalRequired for source map generation; peer dependency.
Agent activity
2 hits · last 30 days
node
2
Resources
metro-minify-terser — npm install metro-minify-terser · libregistry