Minificar JavaScript en línea — Minificador JS

Minifica JavaScript al instante con nuestra herramienta en línea gratuita. Comprime tu JS para producción, o concatena y minifica varios archivos .js en una sola pasada. Procesamiento en el navegador — no se envía ningún dato al servidor.

Cargando…
Minificación JavaScript
Minificar JavaScript en línea con Terser. Comprimir JS para producción — procesamiento instantáneo en el navegador, sin subidas.

Funcionalidades

Reduzca el tamaño de tu código JavaScript eliminando espacios, comentarios y caracteres innecesarios.

Minificar

Reduzca el tamaño de tu código JavaScript eliminando espacios, comentarios y caracteres innecesarios.

Paquete utilizado

Terser
v5.47.1

Terser es un compresor JavaScript moderno que optimiza el tamaño y el rendimiento de tu código.

Ejemplo básico

Código de entrada

function calculateTotal(items) { let total = 0; for (let i = 0; i < items.length; i++) { total += items[i].price; } return total; } const products = [ { name: 'Laptop', price: 999 }, { name: 'Mouse', price: 25 } ]; console.log('Total:', calculateTotal(products));

Código minificado

function calculateTotal(e){let t=0;for(let o=0;o<e.length;o++)t+=e[o].price;return t}const products=[{name:"Laptop",price:999},{name:"Mouse",price:25}];console.log("Total:",calculateTotal(products));
Guía de optimización de JavaScript

Qué hace la minificación JavaScript

La minificación JavaScript reescribe el código fuente en una forma más corta que sigue parseándose y ejecutándose igual. No es un archivo zip: el resultado sigue siendo JavaScript — más denso, no codificado. Un minificador elimina espacios y comentarios, colapsa sintaxis equivalente cuando puede demostrar que el cambio es seguro (true!0, algunas formas if en &&) y acorta identificadores locales. Sigue enviando un archivo .js que el navegador ejecuta tal cual. En código fuente escrito a mano, eso suele recortar entre un 30 y un 70 % de los bytes originales antes de gzip o Brotli. Esos bytes extra en la red son otra capa. La minificación reduce lo que un compresor de transporte ve después; gzip y Brotli siguen siendo importantes tras el despliegue. Tampoco elimina módulos no utilizados — eso es tree shaking en un bundler, antes de que Terser se ejecute. Y no es ofuscación: los nombres se acortan porque son locales, no porque el flujo de control esté oculto.

Cómo FastMinify minifica JavaScript

Esta página ejecuta Terser íntegramente en tu navegador. El pipeline es parse → compress → mangle → render; la barra de herramientas se corresponde con esas etapas. Parse construye un AST. JavaScript inválido falla con un error de sintaxis en lugar de emitir un archivo roto. Compress es el paso semántico: eliminación de ramas muertas, constant folding y eliminación opcional de console.* y debugger (Eliminar console / Eliminar debugger — ambos activados por defecto). El nivel de compresión cambia la intensidad de ese paso: Conservador mantiene los nombres y es más seguro; Normal equilibra el tamaño; Agresivo habilita reescrituras más fuertes (incluido el mangling toplevel) que pueden romper código que depende de los nombres. La versión ECMAScript indica a Terser qué sintaxis puede emitir — elegir ES5 no transpila las funciones flecha que ya escribiste. Mangle (Normal y Agresivo) renombra las variables locales a identificadores cortos. Preservar nombres de funciones y Preservar nombres de clases mantienen esos enlaces cuando algo lee Function.prototype.name o cadenas de clases CSS. Déjelos activados — o permanezca en Conservador — si depende de eval o new Function. Render imprime el AST sin comentarios y con los separadores mínimos legales. El resultado es funcionalmente idéntico salvo que compresión agresiva más mangling encuentre código dependiente de nombres. Pegar y minificar sirve para un archivo o unos pocos; la concatenación en esta página fusiona primero y luego ejecuta el mismo pipeline — no es un bundler. Las aplicaciones de producción siguen perteneciendo al build. Para webpack, Vite o CI, consulte la guía de minificación JavaScript — el mismo motor, con un paso de build.

Opciones de minificación

Versión ECMAScript
Define la versión ECMAScript objetivo para la minificación (ES5, ES2015, ES2017, ES2020, ES2022)

Ejemplos por versión ECMAScript:

Código original (ES2022)
const data = { name: 'test' }; const { name } = data; console.log(name);
ES2022
const{name:data}=data;console.log(data)
ES5
var data={name:'test'};var name=data.name;console.log(name)
Nivel de compresión
Controla la agresividad de la compresión (conservative, normal, aggressive)
ConservativeConservador — Compresión mínima, más seguro
NormalNormal — Equilibrio entre tamaño y compatibilidad
AggressiveAgresivo — Compresión máxima, puede romper cierto código

Ejemplos de compresión:

Código original
function calculateTotal(items) { let total = 0; for (let i = 0; i < items.length; i++) { total += items[i].price; } return total; }
Conservative
function calculateTotal(items){let total=0;for(let i=0;i<items.length;i++)total+=items[i].price;return total}
Normal
function calculateTotal(t){let e=0;for(let l=0;l<t.length;l++)e+=t[l].price;return e}
Aggressive
function e(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n].price;return t}
Preservar nombres de clases
Preserva los nombres de clases CSS en literales de cadena

Comparación con/sin la opción:

Código original
element.className = 'my-class'; element.setAttribute('class', 'another-class');
Con preserveClassNames: true
element.className='my-class';element.setAttribute('class','another-class')
Con preserveClassNames: false
element.className='a';element.setAttribute('class','b')
Diferencia
Los nombres de clases CSS se preservan en las cadenas
Preservar nombres de funciones
Preserva los nombres de funciones para depuración

Comparación con/sin la opción:

Código original
function myFunction() { return true; } const obj = { myMethod() { return false; } };
Con preserveFunctionNames: true
function myFunction(){return!0}const obj={myMethod(){return!1}}
Con preserveFunctionNames: false
function a(){return!0}const obj={b(){return!1}}
Diferencia
Los nombres de funciones se preservan para depuración
Eliminar console
Elimina todas las llamadas console.log, console.warn, etc.

Comparación con/sin la opción:

Código original
console.log('Debug info'); console.warn('Warning message'); const result = calculateTotal(items); console.log('Result:', result); return result;
Con removeConsole: true
const result=calculateTotal(items);return result
Con removeConsole: false
console.log('Debug info');console.warn('Warning message');const result=calculateTotal(items);console.log('Result:',result);return result
Diferencia
Todas las llamadas console.* se eliminan
Eliminar debugger
Elimina las instrucciones debugger del código

Comparación con/sin la opción:

Código original
if (condition) { debugger; return true; } function test() { debugger; return false; }
Con removeDebugger: true
if(condition)return!0;function test(){return!1}
Con removeDebugger: false
if(condition){debugger;return!0}function test(){debugger;return!1}
Diferencia
Las instrucciones debugger se eliminan

Ver opciones de indentación de Embellecer →

Más información sobre esta acción →

Más información sobre esta acción →

Concatenar archivos JavaScript

En Minificar JS, combina varios archivos JavaScript en el orden de la lista y minifica el bundle completo con las opciones actuales de la barra de herramientas. Todo el procesamiento permanece en tu navegador. Es especialmente útil para proyectos que no utilizan un bundler como Webpack o Rollup.

Preguntas frecuentes — Minificar

Todo sobre la minificación

¿Por qué minificar JavaScript?

La minificación JavaScript reduce el tamaño de los archivos eliminando espacios, comentarios y acortando nombres de variables. Los ahorros típicos suelen estar entre el 30 % y el 70 % de los bytes originales antes de gzip.

¿Cómo funciona la minificación JavaScript?

Nuestra herramienta utiliza Terser, el compresor JavaScript estándar de la industria. Elimina caracteres innecesarios y opcionalmente acorta nombres de variables. El código minificado es funcionalmente idéntico al original.

¿Necesita desminificar JavaScript?

Usa nuestro desminificador JavaScript dedicado para restaurar un formato legible a partir de código minificado.

¿Necesita embellecer JavaScript?

Usa nuestro embellecedor JavaScript para formatear el código con indentación coherente.

¿Mi código se procesa de forma segura?

Todo el procesamiento JavaScript ocurre íntegramente en tu navegador. No se envía código a ningún servidor.

¿Puedo concatenar archivos JavaScript?

Sí — en Minificar JS, haga clic en el icono de concatenación sobre el editor de entrada o suelta dos o más archivos .js, .mjs o .cjs en el panel de entrada. Los archivos se fusionan en el orden de la lista y luego el bundle completo se minifica con las opciones de la barra de herramientas.

¿Cómo fusiono varios archivos JS?

Haz clic en el icono de concatenación en la barra de herramientas de entrada o suelta varios archivos JavaScript válidos en el editor izquierdo. Reordénalos en el modal y luego haga clic en Concatenar y minificar.

¿Los separadores de comentarios entre archivos permanecen tras minificar?

No de forma fiable — los marcadores de archivo se insertan antes de minificar el bundle completo, por lo que los comentarios // nombre-archivo y los espacios extra suelen eliminarse.

¿Puedo concatenar archivos en Embellecer JS?

No en la versión actual — la concatenación está disponible solo en Minificar JS.

Compruébalo tú mismo

FastMinify procesa la entrada en el navegador. Inspecciona el panel de red o lee nuestra puerta de validación para confirmar que nada sale del dispositivo.

Minificar

Reduce código y assets para producción — minifica JavaScript, CSS, HTML, JSON y XML antes de gzip o un despliegue CDN.

Explorar otras categorías de herramientas

Embellecer

Haz el código legible con una indentación coherente — embellece JavaScript, CSS, TypeScript, SCSS, LESS, Markdown, GraphQL, SQL, YAML y más en tu navegador.

Desminificar

Expande código minificado o comprimido — desminifica JavaScript, CSS, TypeScript, SCSS, LESS, SQL, YAML y otros formatos al depurar o revisar.

Conversión

Transforma datos entre JSON, YAML, XML y CSV en local — sin subidas a un servidor.

Preprocesadores CSS

Compila SCSS o LESS a CSS estándar en el navegador — combínalo con embellecer o minificar para un flujo de hoja de estilos completo.

Herramientas JSON

Valida, formatea, compara y explora payloads JSON — complementarias a minificadores y convertidores.

Herramientas SVG

Previsualiza, optimiza con SVGO, exporta Data URI, redimensiona, embellece, convierte a JSX y valida SVG — todo en tu navegador.

DevOps e Infra

Formato, validación y minificación de Terraform HCL, formato y lint de Dockerfile, validación de Docker Compose y .env.

CI/CD

GitHub Actions y GitLab CI — formatear YAML y comprobar la estructura de workflows/jobs en el navegador.

Logs y observabilidad

JSON/NDJSON línea a línea y access logs de Nginx/Apache — formato, filtro, validación y CSV/TSV.

Kubernetes

Manifiestos multi-doc, validación estructural, starters Ingress/Deployment y formato de values de Helm.

Red / IP

CIDR, subredes y ayudas IPv4/IPv6 — en tu navegador.

Seguridad y tokens

JWKS, certificados X.509 y escaneo de secretos — en local en el navegador.

API y esquemas

Herramientas OpenAPI para formatear, validar y analizar tus specs.

Codificación

Codifica o decodifica Base64, componentes URL y entidades HTML — solo en el cliente.

Utilidades para desarrolladores

Timestamps, UUID, ULID, Nanoid, cron, contraseñas, regex, slugify, bases numéricas, mayúsculas, diff de texto y chmod — todo en el cliente.

Texto y Markdown

Cuenta palabras, genera TOC Markdown y limpia listas de líneas — todo en tu navegador.

IA y LLM

Conteo de tokens, estimación de costes y ajuste a la ventana de contexto — 100 % en el navegador.

Datos de prueba

Valores de campo sintéticos para fixtures y seed de BD — primero números de teléfono en rangos reservados.

Serialización

Serializa y deserializa estructuras PHP junto a los flujos JSON.