April 10, 2024
Cómo optimizar tu CSS en páginas simples
Guía básica para optimizar tu CSS en páginas simples (HTML, JS y CSS)
Esta guía es un recordatorio de que las soluciones sencillas siempre serán las más óptimas y plantea el escenario de un proyecto que solo cuenta con archivos HTML, CSS y JS (ningún framework fancy) como si viviéramos en los 90s. Lo que se plantea es una forma sencilla de generar archivos CSS minificados y optimizados para producción.
Lo primero que necesitarás es inicializar tu manejador de paquetes favorito ya sea npm o yarn.
Regularmente en mis proyectos utilizo tailwindcss ya que me ayuda a tener una base muy completa de donde partir y en mi experiencia gracias a ese framework escribo CSS.
Una vez inicializado tu manejador de paquetes tendrás que instalar las dependencias necesarias para optmizar el CSS y el framework de tu elección.
yarn add postcss cssnano autoprefixer tailwindcss yarn add postcss-cli --global
Posteriormente lo que necesitará será crear un punto de entrada (raíz) desde donde ser importará todo el CSS y el archivo que se procesará. En mi caso se encuentra en /static/css/input.css.
Ese archivo deberá contener las siguientes tres líneas:
@import "tailwindcss/base"; @import "tailwindcss/components"; @import "tailwindcss/utilities";
Hasta este punto hemos terminado de trabajar con estilos y archivos CSS. Ahora necesitaremos hacer un poco de copnfiguraciones. Necesitamos crear dos archivos en la raíz de nuestro proyecto con el siguiente contenido: postcss.config.js y tailwind.config.js
// tailwind.config.js module.exports = { purge: [ './**/*.html' ], theme: { extend: {}, }, variants: {}, } // postcss.config.js module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, cssnano: {}, } }
Por último necesitaremos crear nuestro scripts en el archivo package.json
// package.json // Toma en cuenta que las rutas y nombres de archivos deberás especificarlos en función de tu proyecto. "build": "npx tailwindcss-cli@latest build ./static/css/input.css -o ./static/css/main.css && npm run minfy", "minfy": "postcss ./static/css/main.css --config minify --ext min.css --dir ./static/css"