百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
F

fontmin

> 编程语言
开源

无缝地优化字体

6.2K stars0 点赞4 次浏览
访问官网GitHub

工具介绍

无缝地优化字体

# fontmin **Minify font seamlessly** [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Downloads][downloads-image]][npm-url] [![Font support][font-image]][font-url] ## Homepage - [简体中文](http://ecomfe.github.io/fontmin/) - [繁體中文](http://ecomfe.github.io/fontmin/tw) - [日本語](http://ecomfe.github.io/fontmin/jp) - [한국어](http://ecomfe.github.io/fontmin/kr) - [English](http://ecomfe.github.io/fontmin/en) ## Install ```sh $ npm install --save fontmin ``` ### Notice **fontmin v2.x only support ES Modules, and run on Node v16+.** If you need to use CommonJS version, please install `fontmin v1.x`: > npm install --save fontmin@1 ## Usage ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .src('fonts/*.ttf') .dest('build/fonts'); fontmin.run(function (err, files) { if (err) { throw err; } console.log(files[0]); // => { contents: } }); ``` You can use [gulp-rename](https://github.com/hparra/gulp-rename) to rename your files: ```js import Fontmin from 'fontmin'; const rename = require('gulp-rename'); const fontmin = new Fontmin() .src('fonts/big.ttf') .use(rename('small.ttf')); ``` ## API ### new Fontmin() Creates a new `Fontmin` instance. ### .src(file) Type: `Array|Buffer|String` Set the files to be optimized. Takes a buffer, glob string or an array of glob strings as argument. ### .dest(folder) Type: `String` Set the destination folder to where your files will be written. If you don't set any destination no files will be written. ### .use(plugin) Type: `Function` Add a `plugin` to the middleware stack. ### .run(cb) Type: `Function` Optimize your files with the given settings. #### cb(err, files, stream) The callback will return an array of vinyl files in `files` and a Readable/Writable stream in `stream` ## Plugins The following plugins are bundled with fontmin: * [glyph](#glyph) — Compress ttf by glyph. * [ttf2eot](#ttf2eot) — Convert ttf to eot. * [ttf2woff](#ttf2woff) — Convert ttf to woff. * [ttf2woff2](#ttf2woff2) — Convert ttf to woff2. * [ttf2svg](#ttf2svg) — Convert ttf to svg. * [css](#css) — Generate css from ttf, often used to make iconfont. * [svg2ttf](#svg2ttf) — Convert font format svg to ttf. * [svgs2ttf](#svgs2ttf) — Concat svg files to a ttf, just like css sprite. * [otf2ttf](#otf2ttf) — Convert otf to ttf. ### .glyph() Compress ttf by glyph. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .use(Fontmin.glyph({ text: '天地玄黄 宇宙洪荒', hinting: false // keep ttf hint info (fpgm, prep, cvt). default = true })); ``` ### .ttf2eot() Convert ttf to eot. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .use(Fontmin.ttf2eot()); ``` ### .ttf2woff() Convert ttf to woff. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .use(Fontmin.ttf2woff({ deflate: true // deflate woff. default = false })); ``` ### .ttf2woff2() Convert ttf to woff2. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .use(Fontmin.ttf2woff2()); ``` ### .ttf2svg() Convert ttf to svg. you can use [imagemin-svgo](https://github.com/imagemin/imagemin-svgo) to compress svg: ```js import Fontmin from 'fontmin'; const svgo = require('imagemin-svgo'); const fontmin = new Fontmin() .use(Fontmin.ttf2svg()) .use(svgo()); ``` ### .css() Generate css from ttf, often used to make iconfont. ``` … ``` Alternatively, a transform function can be passed as `fontFamily` option. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .use(Fontmin.css({ // ... fontFamily: function(fontInfo, ttf) { return "Transformed Font Family Name" }, // ... })); ``` ### .svg2ttf() Convert font format svg to ttf. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .src('font.svg') .use(Fontmin.svg2ttf()); ``` ### .svgs2ttf() Concat svg files to a ttf, just like css sprite. awesome work with [css](#css) plugin: ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .src('svgs/*.svg') .use(Fontmin.svgs2ttf('font.ttf', {fontName: 'iconfont'})) .use(Fontmin.css({ glyph: true })); ``` ### .otf2ttf() Convert otf to ttf. ```js import Fontmin from 'fontmin'; const fontmin = new Fontmin() .src('fonts/*.otf') .use(Fontmin.otf2ttf()); ``` ## CLI ```bash $ npm install -g fontmin ``` ``` … ``` you can use `curl` to generate font for websites running on PHP, ASP, Rails and more: ```sh $ text=`curl www.baidu.com` && fontmin -t "$text" font.ttf ``` or you can use [html-to-text](https://www.npmjs.com/package/html-to-text) to make it smaller: ```sh $ npm install -g html-to-text $ text=`curl www.baidu.com | html-to-text` && fontmin -t "$text" font.ttf ``` what is more, you can use [phantom-fetch-cli](https://www.npmjs.com/package/phantom-fetch-cli) to generate font for `SPA` running JS template: ```sh $ npm install -g phantom-fetch-cli $ text=`phantom-fetch http://www.chinaw3c.org` && fontmin -t "$text" font.ttf ``` ## Related - [fontmin-app](https://github.com/ecomfe/fontmin-app) - [gulp-fontmin](https://github.com/ecomfe/gulp-fontmin) - [fonteditor](https://github.com/ecomfe/fonteditor) ## Thanks - [imagemin](https://github.com/imagemin/imagemin) - [free chinese font](http://zenozeng.github.io/Free-Chinese-Fonts/) - [浙江民间书刻体][font-url] ## License MIT © [fontmin](https://raw.githubusercontent.com/ecomfe/fontmin/master/LICENSE) [downloads-image]: http://img.shields.io/npm/dm/fontmin.svg [npm-url]: https://npmjs.org/package/fontmin [npm-image]: http://img.shields.io/npm/v/fontmin.svg [travis-url]: https://travis-ci.org/ecomfe/fontmin [travis-image]: https://img.shields.io/badge/Build-passing-green.svg [dep-url]: https://david-dm.org/ecomfe/fontmin [dep-image]: http://img.shields.io/david/ecomfe/fontmin.svg [font-image]: https://img.shields.io/badge/font-eonway-blue.svg [font-url]: http://weibo.com/eonway

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

JavaScriptfontfontminicon-fontsubset

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言