Cómo minificar CSS y JavaScript

Reduzca hojas de estilo y scripts eliminando comentarios, espacios y código redundante: pase cada archivo por un minificador, compare tamaños, pruebe el resultado y sírvalo comprimido.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

Pasos

  1. Conserve el código fuente legible

    No edite nunca un archivo minificado. Guarde los archivos originales en el proyecto y trate los minificados como un resultado de compilación que puede recrear cuando quiera.

  2. Minifique el CSS

    Pegue la hoja de estilo en el Minificador de CSS (usa el motor csso) y copie el resultado. Desaparecen los comentarios, se fusionan las propiedades abreviadas, se acortan los colores y se combinan las reglas con el mismo selector.

  3. Minifique el JavaScript

    Pegue el script en el Minificador de JavaScript (el motor terser). La compresión elimina código muerto y simplifica expresiones; la ofuscación acorta los nombres de variables locales. Desactive la ofuscación en el código que dependa de nombres.

  4. Compare los tamaños

    Revise el ahorro que indican las herramientas para cada archivo. Los ahorros típicos son del 20 al 60 por ciento antes de comprimir, y mayores si el código tiene muchos comentarios.

  5. Pruebe el resultado

    Cargue la página con los archivos minificados y vigile la consola del navegador. Ejecute sus comprobaciones habituales, sobre todo en formularios y en todo lo que lea nombres de función.

  6. Sírvalo comprimido y en caché

    Active gzip o Brotli en el servidor y asigne vidas de caché largas a los archivos, cambiando el nombre cuando cambie el contenido. Si carga archivos desde una CDN, protéjalos con Cómo añadir integridad de subrecursos a scripts y hojas de estilo.

Qué necesita

Una hoja de estilo o un script que quiera reducir y una forma de probar la página después.

Ejemplo

Las herramientas anteriores ejecutan motores reales. Este es el resultado que producen con una hoja de estilo y un script minúsculos.

CSS antes (127 caracteres) y después (67):

/* header */
.card {
  margin: 0px 0px 10px 0px;
  color: #ffffff;
  background-color: #FF0000;
}
.card {
  padding: 0.50em;
}
.card{margin:0 0 10px;color:#fff;background-color:red;padding:.5em}

JavaScript antes (161 caracteres) y después (65):

// add two numbers
function addNumbers(firstNumber, secondNumber) {
  const total = firstNumber + secondNumber;
  return total;
}
console.log(addNumbers(2, 3));
function addNumbers(d,e){return d+e}console.log(addNumbers(2,3));

Errores comunes

  • No minifique y luego edite a mano; vuelva a generar desde el código fuente.
  • Los mapas de código fuente (source maps) relacionan el código minificado con el original en el depurador del navegador; genérelos con una herramienta de compilación en trabajos de producción.
  • Minificar archivos ya minificados casi no aporta nada.
  • El código que usa eval, Function.prototype.name o nombres de propiedad como cadenas puede fallar con la ofuscación de nombres.

Pruebe estas herramientas

Véase también

Preguntas frecuentes

No debería. Los minificadores mantienen el comportamiento, pero la ofuscación de nombres y la compresión agresiva pueden destapar errores, por ejemplo en código que depende de nombres de función. Pruebe siempre los archivos minificados.

No. Combínelo con compresión gzip o Brotli y con caché; la compresión suele ahorrar más que minificar, y ambas se suman.

AdSense Placeholder
Slot: footer_leaderboard