Minificador JS
Minifica código JavaScript
Acerca de Minificador JS
«Minificador JS» comprime JavaScript con Terser en tu navegador. Terser analiza primero el código, así que el resultado se comporta como el original: se tratan bien el código escrito sin punto y coma, un return seguido de un salto de línea, las expresiones regulares y expresiones como a - -b. Por defecto, los nombres locales de las funciones se acortan, los nombres globales y las propiedades de los objetos se conservan, el código inalcanzable como un bloque if (false) se elimina y se quitan todos los comentarios. Los ajustes permiten conservar los comentarios de licencia o todos los comentarios, quitar las llamadas a console, acortar también los nombres de nivel superior, conservar los nombres de funciones y clases, leer el código como un módulo ES, dejar que Terser escriba una sintaxis más reciente y añadir un mapa de origen. Se pueden minificar varios archivos .js, .mjs o .cjs uno por uno en un ZIP o unirlos en un solo archivo, y los tamaños de antes y después se muestran en bytes y con gzip. Se acepta la sintaxis moderna, incluidas las clases, las funciones async, el encadenamiento opcional y BigInt, y también las líneas import y export. El TypeScript no: conviértelo antes.
Ejemplo
La entrada no tiene punto y coma; Terser los añade, pone todo en una línea y renombra las variables locales.
Entrada
function total(prices) {
let sum = 0
for (const price of prices) sum += price
return sum
}
console.log(total([1, 2]))Salida minificada
function total(o){let t=0;for(const l of o)t+=l;return t}console.log(total([1,2]));Cómo minificar JavaScript
- 1Pega tu script en «Entrada», o haz clic en «Abrir archivos» para cargar uno o varios archivos .js, .mjs o .cjs.
- 2Cambia los «Ajustes» si hace falta: «Comentarios», «Quitar las llamadas console.*», «Acortar los nombres locales», «Tipo de código», «Mapa de origen (archivo .map)»; con varios archivos, elige «Minificar cada archivo (ZIP)» o «Unir en un solo archivo».
- 3Haz clic en «Minificar».
- 4Lee la «Salida minificada», los caracteres ahorrados y los tamaños de antes y después; si el código no se puede analizar, el error indica su línea y su columna, y el nombre del archivo cuando hay varios.
- 5Haz clic en «Copiar», o en «Descargar» para guardar «minified.js» (o el nombre del archivo abierto con .min.js), su mapa de origen o el ZIP de los archivos minificados.
Formatos y límites
- Entrada
- Scripts de JavaScript o módulos ES, pegados o abiertos desde archivos .js, .mjs o .cjs, hasta 100 a la vez
- Salida
- JavaScript minificado, guardado como minified.js, o como nombre.min.js para un archivo abierto; un archivo .map cuando «Mapa de origen (archivo .map)» está marcado; un ZIP para varios archivos minificados uno por uno
- Ajustes
- Por defecto: compresión y acortamiento de nombres activados, comentarios quitados, nombres de nivel superior conservados, instrucciones debugger quitadas, script, sintaxis de salida ES5; cada opción se puede cambiar
- Errores
- El mensaje de Terser, con su línea y su columna, y el nombre del archivo cuando hay varios archivos abiertos
- Tamaño con gzip
- Estimado con gzip en el nivel 6, el predeterminado de la mayoría de los servidores web; el tamaño que sirve el tuyo depende de su configuración
Dónde se procesa tu script
Terser se descarga una sola vez, la primera vez que haces clic en «Minificar», y luego funciona en tu dispositivo: el script y los archivos que abres los lee tu navegador y no se suben. La excepción es una minificación que falla: el mensaje de error mostrado, sin los textos entre comillas, los números largos ni las direcciones, se envía a nuestro registro de errores con el nombre de la herramienta y el nombre y la versión de tu navegador; un fallo inesperado de la página se notifica de la misma manera.
Preguntas frecuentes
¿El código minificado se comporta igual?
Sí. Terser solo aplica transformaciones que mantienen el comportamiento del código que ha podido analizar, incluido el código escrito sin punto y coma; un return seguido de un salto de línea sigue sin devolver nada, como en el original.
¿Cambia el nombre de las variables?
Sí, las locales por defecto: las variables y los parámetros dentro de las funciones reciben nombres de una letra, como total(prices), que pasa a ser total(o) en el ejemplo. Los nombres de nivel superior y las propiedades de los objetos se conservan, para que otros scripts puedan seguir llamándolos. Marca «Acortar también los nombres de nivel superior» para un script al que no llame nada más (los nombres de nivel superior que no usa se quitan entonces), o «Conservar los nombres de funciones y clases» cuando tu código los lee (fn.name).
¿Puede conservar mis comentarios de licencia?
Sí. En «Comentarios», «Conservar los comentarios de licencia (/*! */, @license, @preserve)» conserva los comentarios que empiezan por /*! o que contienen @license o @preserve, como piden la mayoría de las bibliotecas; «Conservar todos» conserva todos los comentarios.
¿Puedo obtener un mapa de origen?
Sí. Marca «Mapa de origen (archivo .map)»: el código minificado termina con un comentario sourceMappingURL y el archivo .map, que contiene tu código original, se ofrece a su lado. Pon los dos archivos en la misma carpeta para que las herramientas para desarrolladores del navegador muestren las líneas originales.
¿Puede convertir JavaScript moderno a ES5?
No. «Sintaxis de salida hasta» solo deja que Terser escriba formas más cortas y recientes, como { a } en lugar de { a: a } a partir de ES2015; nunca reescribe las clases, las funciones flecha ni las funciones async en ES5. Para eso hace falta un compilador como Babel o esbuild, antes de minificar.
¿Puede minificar TypeScript?
No. Las anotaciones de tipo son un error de sintaxis para Terser. Usa el Minificador de código en modo TS, que quita los tipos y minifica en un solo paso, o pasa antes por TypeScript a JavaScript y pega aquí su resultado.
¿Indica dónde está un error de sintaxis?
Sí. El error da el mensaje de Terser con su línea y su columna, por ejemplo Error en la línea 4, columna 15: Unexpected token: punc (;), y el nombre del archivo cuando hay varios archivos abiertos. Las líneas y las columnas se cuentan a partir de 1.