Mengumpulkan tautan webfont, impor dan definisi dari proyek vite Anda, mengunduh file CSS dan font (privasi-pertama) , tambahkan font ke bundel Anda (atau berfungsi melalui server dev) , dan menyuntikkan definisi font menggunakan metode pemblokiran non-render , sementara menyimpan CSS eksternal dan file font dalam file cache yang tersedia , membuat cache, membuat cache, membuat cache .
npm i vite-plugin-webfont-dl -DEkstrak, unduhan dan suntikan font dari cuplikan kode Google Fonts asli .
<head> dari blok "Gunakan di Web" : < 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 ke plugin vite Anda tanpa konfigurasi dan plugin secara otomatis akan mengurus semuanya: // 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 > Ekstrak, unduhan dan suntikan font dari URL Webfont CSS yang dikonfigurasi .
< link href =" [CSS URL] " rel =" stylesheet " >webfontDownload ke plugin Vite Anda dengan URL Google Fonts CSS yang dipilih: // 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'
] ) ,
] ,
} ; Webfont disuntikkan dan siap digunakan .
Plugin melakukan pekerjaannya dengan mulus apakah Anda sedang mengerjakan server pengembangan lokal atau membangun produksi.
h1 {
font-family : 'Press Start 2P' , cursive;
}
h2 {
font-family : 'Fira Code' , monospace;
}Untuk membuatnya bekerja dengan plugin Laravel Vite, tambahkan baris ini ke file blade Anda:
@vite ( ' webfonts.css ' )
cdn.jsdelivr.net ): Bekerja dengan nol konfigurasi atau konfigurasi sederhanarsms.me ): Bekerja dengan nol konfigurasi atau konfigurasi sederhana@font-face definisi) berfungsi dengan konfigurasi sederhana injectAsStyleTag ( boolean , default: true ):
Suntikkan Webfont sebagai tag <style> (CSS tertanam) atau sebagai file .css eksternal
minifyCss ( boolean , default: nilai build.minify ):
Minify CSS Code selama Build.
embedFonts ( boolean , default: false ):
Embed font encoded base64 ke dalam CSS.
Dalam beberapa kasus dapat menyebabkan peningkatan file jika CSS berisi beberapa referensi ke file font yang sama. Contoh
async ( boolean , default: true ):
Cegah penggunaan penangan acara inline ( webfonts.css ) yang dapat menyebabkan masalah kebijakan keamanan konten.
Hanya bekerja dengan injectAsStyleTag:false .
cache ( boolean , default: true ):
Simpan secara terus -menerus yang diunduh CSS dan file font di cache file lokal.
Jika diatur ke false cache yang ada akan dihapus.
proxy ( false|AxiosProxyConfig , default: false ):
Konfigurasi proxy untuk permintaan jaringan.
assetsSubfolder ( string , Default: '' ):
Pindah file font yang diunduh untuk memisahkan subfolder dalam direktori aset.
penggunaan:
ViteWebfontDownload (
[ ] ,
{
injectAsStyleTag : true ,
minifyCss : true ,
embedFonts : false ,
async : true ,
cache : true ,
proxy : false ,
assetsSubfolder : '' ,
}
)atau:
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 : '' ,
}
)? Dengan menghindari sumber daya pemblokiran render yang disebabkan oleh webfont pihak ketiga, Anda dapat meningkatkan kinerja halaman yang mengarah pada pengalaman pengguna yang lebih baik dan meningkatkan hasil SEO .
Plugin mengunduh font yang diberikan dari layanan webfont pihak ketiga (seperti Google Fonts) dan secara dinamis menyuntikkannya (sebagai stylesheet internal atau eksternal) menjadi proyek vite Anda, mengubah webfont pihak ketiga menjadi yang diselenggarakan sendiri . ?
? Selain peningkatan kinerja yang signifikan, pengunjung Anda juga akan mendapat manfaat untuk perlindungan privasi , karena tidak ada server pihak ketiga yang terlibat.
Google Fonts menghasilkan kode berikut yang harus Anda suntikan ke dalam <head> situs web Anda, contoh :
< 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 " >Apa yang terjadi di sisi klien dengan Google Fonts :
fonts.googleapis.com . Ini terjadi di latar belakang untuk meningkatkan kinerja. [ preconnect ]fonts.gstatic.com . [ preconnect ]fonts.googleapis.com (dengan font-display:swap ) . [ stylesheet ]@font-face yang berisi URL font dari server fonts.gstatic.com .fonts.gstatic.com .Sebaliknya, plugin Webfont-DL melakukan sebagian besar pekerjaan pada waktu pembangunan, meninggalkan minimum ke browser.
Plugin Webfont-DL
index.html dan CSS yang dihasilkan)<style> ) atau file CSS Webfont / Eksternal<head> situs web Anda menggunakan metode pemblokiran non-render, contoh : < 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 > atau (menggunakan server dev atau 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 " >Apa yang terjadi di sisi klien dengan plugin Webfont-DL :
<style> tertanam).atau
preload ]print " (pemblokiran non-render) . Setelah memuatnya mempromosikan ke " all " Media Type Stylesheet (dengan menghapus atribut " media "). [ stylesheet ] Proyek Starter Vite dengan
| ? | ||
|---|---|---|
| ? webfont.feat.agency | ? Webfont-DL.Feat.agency |

Lisensi MIT © 2022 Feat.