npm 包 gulp-icomoon-builder 使用教程

阅读时长 6 分钟读完

在前端开发中,icon 是不可缺少的一个元素。在项目中,我们往往会选择使用 IcoMoon 字体库来管理和使用 icon,本文将介绍如何使用 npm 包 gulp-icomoon-builder 来自动生成 IcoMoon 字体库。

1. 安装 gulp-icomoon-builder

在终端中进入项目的根目录,执行以下命令:

2. 下载 IcoMoon 的字体文件

IcoMoon 官网 创建一个项目,选择需要的 icon,然后点击右上角的“Generate Font”按钮,下载压缩包。解压后可以得到以下文件:

  • fonts/icomoon.eot
  • fonts/icomoon.svg
  • fonts/icomoon.ttf
  • fonts/icomoon.woff

将这些文件复制到项目的某个目录下,例如 src/assets/fonts。

3. 配置 gulpfile.js

在项目的根目录中创建 gulpfile.js,加入以下代码:

-- -------------------- ---- -------
--- ---- - ----------------
--- -------- - -------------------------
--- ----------- - -----------------------------
--- ------------ - --------------------- - ------

--------------------- -----------
  ------ ------------------------------------
  -------------------
    --------- ----------
    ----- ----------------------------------
    ----------- --------------------------------
    --------- -----------
  ---
  ----------------
    --------- ----------
    --------------- -----
    -------- -------- -------- ------ ------ -------
    ---------- ------------
   ---
  --------------------------------------
---
  • 第 1 行:引入 gulp 模块。
  • 第 2 行:引入 gulp-iconfont 模块,用于生成字体文件。
  • 第 3 行:引入 gulp-iconfont-css 模块,用于生成 css 文件。
  • 第 4 行:用于获取当前时间戳,作为字体版本号。
  • 第 6 行:定义一个任务名为“iconfont”。
  • 第 8 行:从指定目录中读取所有的 .svg 文件。
  • 第 9~14 行:使用 gulp-iconfont-css 生成 css 文件,其中 fontName 为生成的字体名称,path 为包含 css 模板信息的文件路径,targetPath 为生成的 css 文件的相对路径,fontPath 为字体文件的相对路径。
  • 第 16~26 行:使用 gulp-iconfont 生成字体文件,其中 fontName 为字体的名称,prependUnicode 表示是否在 Unicode 前面加上反斜杠,formats 表示生成的字体格式,timestamp 表示字体的版本号。
  • 第 27 行:指定字体文件的输出目录。

4. 创建 css 模板文件

在 src/assets/templates 目录下创建 _icons.css 文件,输入以下代码:

-- -------------------- ---- -------
---------- -
  ------------ ----------
  ----  -----------------------------------------------
  ----  ---------------------------------------------------- ----------------------------
    ---------------------------------------------- -------------------
    ----------------------------------------------- ---------------
    ------------------------------------------------------ --------------
  ------------ -------
  ----------- -------
-

----------------- --------- ------- -
  -- --- ---------- -- ------- ------ ---- ------- ---------- ---- ------ ----- --
  ------------ --------- -----------
  ------ ------
  ----------- -------
  ------------ -------
  ------------- -------
  --------------- -----
  ------------ --
  ----------------------- ------------
  ------------------------ ----------
-

----------------- -
  -------- --------
-

其中:

  • font-family 表示生成的字体名称。
  • src 为字体文件的地址,其中 [[fontPath]] 和 [[timestamp]] 分别会被 gulp-iconfont-css 插件替换成实际值。
  • [class^="icon-"], [class*=" icon-"] 表示所有类名以“icon-”开头或包含“ icon-”的元素都使用这个字体。
  • .icon-home:before 表示将 icon 的类名“icon-home”对应的字符设置为实际图标。

5. 使用

执行以下命令:

便可在 src/assets/fonts 目录下生成以下文件:

  • icomoon.eot
  • icomoon.svg
  • icomoon.ttf
  • icomoon.woff
  • icomoon.woff2

并在 src/stylesheets 目录下生成 _icons.scss 文件,其中包含了所有图标的类名和对应字符的设置。在项目中只需要引入 _icons.scss 文件即可。

例如项目的 index.html 文件中使用“icon-home”图标:

-- -------------------- ---- -------
------
  ------
    -------------------
    ----- ---------------- -----------------------------
  -------
  ------
    ---- ------------------------
  -------
-------

在 stylesheets/index.css 文件中加入:

便可使用图标。

总结

使用 gulp-icomoon-builder 可以自动生成 IcoMoon 字体库,前端开发者无需手动生成和维护字体文件和 css 文件,极大地提高了开发效率。通过本文的学习,相信读者已经会使用 gulp-icomoon-builder 了。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055eb781e8991b448dc69c

纠错
反馈