Libreria Gratis Activo

@playform/compress

Para reducir el peso del build estático de un sitio Astro comprimiendo automáticamente HTML, CSS, JS, SVG, JSON e imágenes.

Integración de Astro que comprime el build estático: HTML, CSS, JavaScript, SVG, JSON e imágenes.

Notas y contexto

Qué es

Compress (@playform/compress) es una integración para Astro mantenida por PlayForm. Se engancha en el proceso de build y comprime los artefactos estáticos generados, reduciendo su tamaño antes del despliegue. Está escrita en TypeScript y se apoya en herramientas consolidadas para cada tipo de archivo. Solo actúa sobre el build estático y las rutas prerenderizadas, no sobre las peticiones en tiempo de ejecución.

Para qué sirve

  • Minificar el HTML generado con html-minifier-terser.
  • Comprimir CSS mediante csso o lightningcss.
  • Minificar el JavaScript del bundle con terser.
  • Optimizar imágenes (JPEG, PNG, WebP, AVIF y más) con sharp y SVG con svgo.

Cuándo usarlo

  • Cuando tienes un sitio Astro estático o con rutas prerenderizadas y quieres reducir el peso final sin configurar manualmente cada minificador.
  • Es útil como último paso del pipeline de build para exprimir el tamaño de los assets. Si solo necesitas optimizar imágenes, las utilidades nativas de Astro o un servicio de imágenes pueden bastar; Compress cubre además HTML, CSS, JS, SVG y JSON en una sola integración.

Ejemplo

Instalación con el asistente de Astro:

npx astro add @playform/compress

Uso básico en la configuración de Astro:

// astro.config.ts
export default {
  integrations: [(await import('@playform/compress')).default()],
};

Desactivando o ajustando compresores concretos:

export default {
  integrations: [
    (await import('@playform/compress')).default({
      CSS: true,
      HTML: {
        'html-minifier-terser': {
          removeAttributeQuotes: false,
        },
      },
      Image: true,
      JavaScript: true,
      SVG: true,
    }),
  ],
};

Puntos clave

  • Cubre HTML, CSS, JavaScript, SVG, JSON e imágenes con una sola integración.
  • Cada compresor se puede activar, desactivar o configurar de forma individual.
  • Permite filtrar archivos y apuntar a varios directorios de salida.

Ten en cuenta

  • Solo comprime el build estático y las rutas prerenderizadas, no las respuestas dinámicas en tiempo de ejecución.
  • Conviene colocarlo el último en la lista de integraciones para obtener mejores resultados.
  • Se distribuye bajo licencia CC0-1.0 (dominio público), algo a tener en cuenta si tu proyecto exige una licencia con atribución.
Volver al directorio
Volver al directorio