Optimización de Fuentes Locales con Webpack

Clase 11 de 28Curso de Webpack

Resumen

¿Cómo optimizar fuentes externas integrándolas al proyecto?

Cuando trabajamos con fuentes externas, como las de Google Fonts, es común que nuestros proyectos se vuelvan más pesados por los llamados que se realizan a estas fuentes. Una excelente práctica de optimización consiste en integrar estas fuentes de manera local dentro del proyecto. Esto garantiza un rendimiento mejorado y una carga más rápida. Aquí te explicamos cómo hacerlo utilizando webpack.

¿Cómo identificar y descargar la fuente?

El primer paso es identificar qué fuentes estás utilizando actualmente. En muchos proyectos, las fuentes se gestionan desde la hoja de estilos principal. Por ejemplo, si estás importando la fuente "Ubuntu" de Google Fonts en tu archivo CSS, es momento de descargarla para incorporarla localmente. Si bien Google Fonts permite la descarga de fuentes, es necesario obtenerlas en formato optimizado para la web, como .woff o .woff2.

Para facilitar este proceso, hay herramientas en línea donde puedes seleccionar y descargar fuentes en el formato deseado. Una opción puede ser usar un generador de fuentes web que permita la descarga en los formatos requeridos.

¿Cómo integrar las fuentes localmente con font-face?

Una vez descargada la fuente, es momento de integrarla al proyecto. Crea una carpeta fonts dentro de tu directorio assets y coloca ahí las fuentes descargadas. Luego, en tu archivo CSS, utiliza la regla @font-face para definir la fuente localmente.

@font-face {
    font-family: 'Ubuntu';
    src: url('../assets/fonts/ubuntu-regular.woff2') format('woff2'),
         url('../assets/fonts/ubuntu-regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

Con esta configuración, estás indicando al navegador que utilice las fuentes locales en lugar de recurrir a servidores externos. Esto no solo mejora la velocidad de carga, sino también la consistencia del proyecto.

¿Cómo configurar webpack para copiar fuentes?

Una vez que tus fuentes están integradas localmente, el siguiente paso es asegurarte de que se incluyan correctamente en la carpeta de distribución al momento de compilar el proyecto con webpack. Para esto, necesitas configurar webpack para que maneje las fuentes de la misma manera que las imágenes.

Primero, instala los loaders necesarios:

npm install url-loader file-loader --save-dev

Luego, añade la siguiente configuración a tu archivo webpack:

module.exports = {
  module: {
    rules: [
      // Otras reglas
      {
        test: /\.(woff|woff2)$/,
        use: {
          loader: 'url-loader',
          options: {
            limit: 10000,
            mimetype: 'application/font-woff',
            name: '[name].[ext]',
            outputPath: 'assets/fonts/',
            publicPath: 'assets/fonts/',
            esModule: false
          }
        }
      }
    ]
  }
};

Con estas reglas, le indicas a webpack cómo manejar y procesar los archivos de fuentes, asegurando que se copien a la ubicación correcta en la carpeta de distribución.

¿Cómo verificar la integración exitosa?

Finalmente, después de configurar y compilar el proyecto, es crucial verificar que las nuevas configuraciones funcionan correctamente. Puedes servir tu proyecto con npm run dev o un servidor similar para observar los cambios.

Verifica que las fuentes se carguen localmente inspeccionando el elemento y asegurando que el font-family aplicado corresponda al que has definido. También es recomendable verificar visualmente que la representación de las fuentes sea la esperada por sus características distintivas, como las formas de las letras.

Una integración correcta de las fuentes no solo optimiza la carga del sitio, sino que también garantiza que las tipografías se muestren de manera consistente en todos los navegadores y dispositivos. Esta mejora es un paso más hacia la eficiencia y la performance en la gestión de recursos de un proyecto de desarrollo web.