svgからwoff2へ変換するNode.js製「grunt-webfont」
fontcustomがエラーを吐くようになったので、fontforgeを使ったsvgからwoff2へ変換する方法を探しているときの覚書。
環境: CentOS Stream 8, fontforge 20200314, Node.js v18.9.1
最近も更新されている下記Node.js(Grunt)製ツールを試してみた。
ドキュメントに従い依存関係のあるソフトのインストール
# dnf install fontforge ttfautohint
ttfautohintはリポジトリになかった。
そのまま進める。
grunt-webfontをインストールする。
gruntをglobalにインストール済みならgrunt-webfontだけでいい。
# su - node
$ cd /path/to/project/
$ npm install grunt grunt-webfont --save-dev
npm WARN EBADENGINE Unsupported engine {npm WARN EBADENGINE package: 'svg-pathdata@1.0.0',npm WARN EBADENGINE required: { node: '0.10.*' },npm WARN EBADENGINE current: { node: 'v18.9.1', npm: '8.19.3' }npm WARN EBADENGINE }
WARNINNGが出たけどとりあえず進める。
Gruntfile.jsを作る
$ vi Gruntfile.js
module.exports = function(grunt) {grunt.loadNpmTasks('grunt-webfont');grunt.initConfig ({webfont: {icons: {src: 'fonts/svg/*.svg',dest: 'fonts/icons',options: {font: 'icons',fontFilename: 'icons_{hash}',types: 'woff2,woff'}}}});grunt.registerTask('default', ['webfont']);}
gruntがglobalでインストール済みならgruntコマンドで実行できる。
$ grunt
gruntをglobalにインストールしたくないなら、npm runできるようにpackage.jsonを変更。
"scripts": {"grunt": "grunt"}
実行してみる。
$ npm run grunt
生成されたicons.htmlを見てみると問題なく変換できている。
fontcustomの代替としては十分だと思う。
【関連記事】
- svgからウェブフォントwoff2に変換するNode.js製ツール
- CentOS Stream 8 + Ruby + fontcustomをインストール
- 【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール
- CentOS上でJSHint + Gruntを使ってJavaScriptの文法チェック