UNPKG

vite-plugin-webfont-dl

Version:

Vite plugin for downloading and injecting webfonts

118 lines (107 loc) 3.12 kB
import { Plugin } from 'vite'; import { AxiosProxyConfig } from 'axios'; interface Options { /** * Inject critical css between style tag. * default: `true` * */ injectAsStyleTag?: boolean; /** * Minify CSS code during build. * default: value of `build.minify` * */ minifyCss?: boolean; /** * Embed base64-encoded fonts into css. * In some cases can cause filesize increase if css containes multiple references to same font file. * default: `false` * */ embedFonts?: boolean; /** * Load stylesheet asynchronously (using `media="print"`). * Works only with `injectAsStyleTag:false`). * default: `true` * */ async?: boolean; /** * Persistently store downloaded css and font files in local file cache. * If set to `false` the existing cache will be deleted. * default: `true` * */ cache?: boolean; /** * You can set proxy for network requests (using axios). * default: `false` */ proxy?: false | AxiosProxyConfig; /** * Moves downloaded font files to separate subfolder * default: `''` */ assetsSubfolder?: string; /** * Throw on error to make Vite build fail. * default: `false` */ throwError?: boolean; } /** * A, Build: * 1. [hook] configResolved * ↳ setBase() * ↳ setAssetsDir() * ↳ setMinifyCss() * ↳ setResolvedLogger() * * 2. [hook] transformIndexHtml * ↳ htmlFiles collect * * 3. [hook] generateBundle * ↳ setEmitFileFunction() * ↳ setGetFilenameFunction() * ↳ clearWebfontUrlsHtml() * ↳ collectWebfontsFromHtml() * ↳ collectWebfontsFromBundleCss() * ↳ downloadWebfontCss() * ↳ parseFontDefinitions() * ↳ downloadFonts() * ↳ replaceFontUrls() * ↳ saveCss() * ↳ removeTagsFromHtml() * ↳ injectToHtml() * * * B, Dev server: * 1. [hook] configResolved * ↳ setBase() * ↳ setAssetsDir() * ↳ setMinifyCss() * ↳ setResolvedLogger() * * 2. [hook] configureServer * ↳ setIsDevServer(true) * ↳ setAssetsDir('@webfonts') * ↳ getDevServerMiddlewareCss() * ↳ getDevServerMiddlewareGeneral() * * 3. [hook] transformIndexHtml * ↳ clearWebfontUrlsHtml() * ↳ collectWebfontsFromHtml() * ↳ removeTagsFromHtml() * ↳ injectToHtml() * * 4. [middleware] css (@webfonts/webfonts.css) * ↳ loadDevServerFonts() * ↳ downloadWebfontCss() * ↳ parseFontDefinitions() * ↳ replaceFontUrls() * ↳ fontUrlsDevMap fill * ↳ response: css (text) * * 5. [middleware] font (assets/xyz.woff2) * ↳ check fontUrlsDevMap * ↳ downloadFont() * ↳ response: font (binary) */ declare function viteWebfontDownload(webfontUrls?: string | string[], options?: Options): Plugin; export { viteWebfontDownload as ViteWebfontDownload, viteWebfontDownload as default, viteWebfontDownload as viteWebfontDl, viteWebfontDownload, viteWebfontDownload as webfontDl, viteWebfontDownload as webfontDownload };