Skip to content
PluginStats

@ohos-ports/vite-plugin-font weekly downloads statistics

By ohos-ports · npm · Webpack plugins

An automatic Web Font optimization plugin that supports many platforms such as Vite, Next, Nuxt, and more.

View on npm Stale · Oct 18, 2026

@ohos-ports/vite-plugin-font has 4 recorded weekly downloads on npm, a decrease of 93.5% over the past 30 days, ranking #2268 of 2,391 tracked listings.

Weekly downloads
4
Official API · Oct 18, 2026
7-day growth
+33.3%
+1 weekly downloads
30-day growth
-93.5%
-58 weekly downloads
90-day growth
—
Insufficient history
Rank
#2268
Among tracked npm listings

About @ohos-ports/vite-plugin-font

🔠 vite-plugin-font 5.0 ⚡

中文 | English

Developed and supported by the Chinese WebFont Project, vite-plugin-font is a powerful and simple Vite font build tool that can split large fonts into Webfonts. It is powered by cn-font-split for Rust-native level build speed.

We provide an Extremely lightweight optimization solution for first-screen optimization and a full-scale optimization for large text sites, achieving extreme optimization of Chinese fonts in the front-end toolchain.

⚡ Features

  1. ⚡ 50% faster speed, no fear of lag
  2. ⚙️ Automatic CJK (Chinese, Japanese, Korean) font splitting, extremely fast on-demand loading
  3. 🚀 Automatically optimizes the first screen based on characters used in your project
  4. 🔄 Automatically converts fonts to woff2 format, no need to worry about size issues
  5. 🌐 Automatically adds local adaptation, reduces cumulative content shifts, SSR support
  6. 📤 Exports font information, supports tree shaking optimization
  7. 🎨 Pure CSS, no runtime data, multi-platform compatibility
  8. 📦 Automatically reduces Chinese CLS offset
TypeVite, Astro, QwikNuxtNextWebpack, Rspack
Full-scale optimization✅✅✅✅
Extremely lightweight optimization✅✅✅✅
  1. Full-scale optimization is suitable for blogs, documentation websites, which require a large amount of uncertain text. It can achieve full-scale font rendering and has excellent cache performance when combined with CDN.
  2. Extremely lightweight optimization is suitable for official websites, promotional web pages, etc., where quick rendering is required. It collects the characters used in your code and only loads these characters, providing excellent rendering performance. The required font size is approximately 10% of full-scale optimization.

📦 Install

# 国内请设置环境变量, windows 用 set
export CN_FONT_SPLIT_GH_HOST=https://ik.imagekit.io/github
# set CN_FONT_SPLIT_GH_HOST=https://ik.imagekit.io/github # windows
npm i -D vite-plugin-font
import { css, fontFamilyFallback } from '../demo/public/SmileySans-Oblique.ttf';
document.body.style.fontFamily = `"${css.family}", ` + fontFamilyFallback;

✨ Config

Vite

Almost all frameworks that use Vite as the underlying compilation framework can use vite-plugin-font by defining plugins.

// vite.config.js
import { defineConfig } from 'vite';
import Font from 'vite-plugin-font';
export default defineConfig({
    plugins: [Font.vite()],
});
Nuxt
// https://nuxt.com/docs/api/configuration/nuxt-config
import font from 'vite-plugin-font';
export default defineNuxtConfig({
    devtools: { enabled: false },
    vite: {
        plugins: [font.vite({})],
    },
    compatibilityDate: '2024-10-26',
});
Next
// next.config.mjs
/** @type {import('next').NextConfig} */
const nextConfig = {
    webpack: (config, options) => {
        config.plugins.push(viteFont.webpack());
        return config;
    },
};

export default nextConfig;
Webpack
// webpack.config.js or rspack.config.js
const path = require('path');

module.exports = {
    plugins: [viteFont.webpack()],
};
Rsbuild

Thanks to @SamuNatsu for the addition.

TS Type Configuration

export default defineConfig({
  // ...
  tools: {
    bundlerChain(chain, { CHAIN_ID }) {
      chain.module.rule(CHAIN_ID.RULE.FONT).exclude.add(/\.(ttf|otf)$/);  // Require RsBuild not to process .ttf files
    },
    rspack: {
      plugins: [pluginFont.rspack()],  // Register plugin in RsPack
    },
  },
  // ...
});

🚀 Usage

// Automatically injects CSS to import fonts and supports tree shaking optimization of font information!
import { css } from '../../demo/public/SmileySans-Oblique.ttf'; // Directly import font file
console.log(css.family, css.weight); // You can get CSS-related data here

export const App = () => {
    return (
        <div
            style={{
                fontFamily: css.family,
            }}
        ></div>
    );
};

Extremely Lightweight Optimization

Extremely lightweight optimization is suitable for official websites, promotional web pages, etc., where quick rendering is required. It collects the characters used in your code and only loads these characters, providing excellent rendering performance.

Add scanFiles, the way to add it for Nuxt and Webpack is slightly different, but both are adding scan files to the options.

// vite.config.js
import { defineConfig } from 'vite';
import Font from 'vite-plugin-font';
export default defineConfig({
    plugins: [
        Font.vite({
            scanFiles: ['src/**/*.{vue,ts,tsx,js,jsx}'],
        }),
    ],
});

Add ?subsets to your link

// Automatically injects CSS to import fonts and supports tree shaking optimization of font information!
- import { css } from '../../demo/public/SmileySans-Oblique.ttf';
+ import { css } from '../../demo/public/SmileySans-Oblique.ttf?subsets';
console.log(css.family, css.weight); // You can get CSS-related data here

export const App = () => {
    return (
        <div
            style={{
                fontFamily: css.family,
            }}
        ></div>
    );
};
```…

Description from the npm listing.

  • vite
  • vite-plugin
  • nuxt
  • nuxt-plugin
  • next
  • next-plugin
  • webpack
  • webpack-plugin
  • web-font
  • webfont
  • vue
  • react
  • converter
  • performance
  • wasm
  • woff2
  • ttf
  • otf
  • opentype-fonts
  • font-subsetter

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@ohos-ports/vite-plugin-font weekly downloads on npm, last 90 days: 4 weekly downloads as of Oct 18, 2026.@ohos-ports/vite-plugin-fontWeekly downloads on npm · Last 90 days4downloads / week020406080100120Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
@ohos-ports/vite-plugin-font weekly downloads on npm, last 90 days: 4 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@ohos-ports/vite-plugin-font weekly downloads growth on npm: +33.3% over 7 days, -93.5% over 30 days, 90-day growth unavailable.@ohos-ports/vite-plugin-fontWeekly downloads growth on npm4downloads / week now7-day growth+1 weekly downloads+33.3%30-day growth-58 weekly downloads-93.5%90-day growth+4 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@ohos-ports/vite-plugin-font weekly downloads growth on npm: +33.3% over 7 days, -93.5% over 30 days, 90-day growth unavailable.

Ranking history

@ohos-ports/vite-plugin-font npm ranking history: currently #2268 (by weekly downloads).@ohos-ports/vite-plugin-fontnpm ranking · by weekly downloads · Last 90 days#2268current rank#2160#2180#2200#2220#2240#2260#2280Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 18, 2026 – Oct 21, 2026 · 4 observations · Updated Oct 18, 2026pluginstats.com
@ohos-ports/vite-plugin-font npm ranking history: currently #2268 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,196 shown · page 116, #6 (overall #2,306)
All npm: every listing in weekly downloads order

Listing placement

Webpack plugins257 listings · 13 pages · page 13, #7 (overall #247)
Webpack plugins: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @ohos-ports/vite-plugin-font
Date (UTC)Weekly downloadsChange vs. previous
4+2
2-2
4+1
30
3-1
40
4+1
3-2
5+2
3-1
4-3
7-1
80
8—

Similar npm Webpack plugins plugins

All 20 @ohos-ports/vite-plugin-font alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@ohos-ports/vite-plugin-font. First seen Oct 16, 2026; last successful collection Oct 21, 2026. See the methodology.