Recopila enlaces web, importaciones y definiciones de su proyecto VITE, descarga CSS y archivos de fuentes (privacidad primero) , agregue las fuentes a su paquete (o sirve a través del servidor de Dev) e inyecta las definiciones de fuentes utilizando un método de bloqueo que no sea de renderizado , mientras tanto almacena CSS externo y archivos de fuentes en un archivo persistente de archivos para el desarrollo de archivos perseguidos para el desarrollo fuera de línea .
npm i vite-plugin-webfont-dl -DExtrae, descarga e inyecta fuentes del fragmento original del código de Google Fonts .
<head> < link rel =" preconnect " href =" https://fonts.googleapis.com " >
< link rel =" preconnect " href =" https://fonts.gstatic.com " crossorigin >
< link href =" https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400&family=Roboto:wght@100&display=swap " rel =" stylesheet " >webfontDownload a sus complementos VITE sin ninguna configuración y el complemento automáticamente se encargará de todo: // vite.config.js
import webfontDownload from 'vite-plugin-webfont-dl' ;
export default {
plugins : [
webfontDownload ( ) ,
] ,
} ;dist/index.html : < style > @font-face{font-family:...;src:url(/assets/foo-xxxxxxxx.woff2) format('woff2'),url(/assets/bar-yyyyyyyy.woff) format('woff')}... </ style > Extrae, descarga e inyecta fuentes de la URL CSS WebFont configurada .
< link href =" [CSS URL] " rel =" stylesheet " >webfontDownload a sus complementos VITE con las URL CSS de Google Fonts seleccionadas: // vite.config.js
import webfontDownload from 'vite-plugin-webfont-dl' ;
export default {
plugins : [
webfontDownload ( [
'https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap' ,
'https://fonts.googleapis.com/css2?family=Fira+Code&display=swap'
] ) ,
] ,
} ; Las infontales se inyectan y están listas para usar .
El complemento realiza su trabajo sin problemas, ya sea que esté trabajando en el servidor de desarrollo local o en la creación de producción.
h1 {
font-family : 'Press Start 2P' , cursive;
}
h2 {
font-family : 'Fira Code' , monospace;
}Para que funcione con el complemento Laravel Vite, agregue esta línea a su archivo Blade:
@vite ( ' webfonts.css ' )
cdn.jsdelivr.net ): funciona con configuración cero o configuración simplersms.me ): funciona con cero configuración o configuración simple@font-face ) funciona con una configuración simple injectAsStyleTag ( boolean , predeterminado: true ):
Inyecte WebFonts como <style> etiqueta (CSS integrado) o como un archivo .css externo
minifyCss ( boolean , predeterminado: valor de build.minify ):
Minificar el código CSS durante la compilación.
embedFonts ( boolean , predeterminado: false ):
Incrustar fuentes codificadas en Base64 en CSS.
En algunos casos, puede causar un aumento en el tamaño de los archivos si CSS contiene múltiples referencias al mismo archivo de fuente. Ejemplo
async ( boolean , predeterminado: true ):
Evite el uso de los controladores de eventos en línea ( webfonts.css ) que pueden causar problemas de política de seguridad de contenido.
Funciona solo con injectAsStyleTag:false .
cache ( boolean , predeterminado: true ):
Almacene persistentemente CSS y archivos de fuentes descargados en caché de archivos locales.
Si se establece en false se eliminará el caché existente.
proxy ( false|AxiosProxyConfig , predeterminado: false ):
Configuración proxy para solicitudes de red.
assetsSubfolder ( string , predeterminado: '' ):
Mueve archivos de fuentes descargados a subcarpeta separada en el directorio de activos.
uso:
ViteWebfontDownload (
[ ] ,
{
injectAsStyleTag : true ,
minifyCss : true ,
embedFonts : false ,
async : true ,
cache : true ,
proxy : false ,
assetsSubfolder : '' ,
}
)o:
ViteWebfontDownload (
[
'https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap' ,
] ,
{
injectAsStyleTag : true ,
minifyCss : true ,
embedFonts : false ,
async : true ,
cache : true ,
proxy : false ,
assetsSubfolder : '' ,
}
)? Al evitar los recursos de bloqueo de renderizado causados por los pasos web de terceros, puede aumentar el rendimiento de la página , lo que lleva a una mejor experiencia del usuario y mejora los resultados de SEO .
El complemento descarga las fuentes dadas del servicio de campo web de terceros (como Google Fonts) y las inyecta dinámicamente (como hoja de estilo interna o externa) en su proyecto VITE, transformando los esfuerzos web de terceros en las autoestimadas . ?
? Además del aumento significativo del rendimiento , sus visitantes también se beneficiarán a la protección de la privacidad , ya que no hay un servidor de terceros involucrado.
Google Fonts genera el siguiente código que debe inyectar en el ejemplo de <head> , Ejemplo :
< link rel =" preconnect " href =" https://fonts.googleapis.com " >
< link rel =" preconnect " href =" https://fonts.gstatic.com " crossorigin >
< link href =" https://fonts.googleapis.com/css2?family=Fira+Code&display=swap " rel =" stylesheet " >Lo que sucede en el lado del cliente con Google Fonts :
fonts.googleapis.com . Esto sucede en el fondo para mejorar el rendimiento. [ preconnect ]fonts.gstatic.com . [ preconnect ]fonts.googleapis.com (con font-display:swap ) . [ stylesheet ]@font-face que contienen URL de fuentes de fonts.gstatic.com Server.fonts.gstatic.com .Por el contrario, el complemento WebFont-DL hace la mayor parte del trabajo en el tiempo de compilación, deja el mínimo del navegador.
Complemento webfont-dl
index.html y el CSS generado)<style> etiqueta) integrado o un archivo CSS externo / CSS<head> de su sitio web utilizando un método de bloqueo no renderizado, ejemplo : < style >
@font-face {
font-family: 'Fira Code';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(/assets/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_GNsJV37Nv7g.9c348768.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
...
</ style > o (usando el servidor Dev o injectAsStyleTag: false )
< link rel =" preload " as =" style " href =" /assets/webfonts.b904bd45.css " >
< link rel =" stylesheet " media =" print " onload =" this.onload=null;this.removeAttribute('media'); " href =" /assets/webfonts.b904bd45.css " >Lo que sucede en el lado del cliente con el complemento WebFont-DL :
<style> etiqueta).o
preload ]print " (bloqueo sin renderizado) . Después de cargarlo, promueva a " all " la hoja de estilo de tipo medios (eliminando el atributo " media "). [ stylesheet ] Proyecto VITE de inicio con
| ? | ||
|---|---|---|
| ? webfont.feat.agency | ? webfont-dl.feat.agency |

Licencia MIT © 2022 Feat.