npm 包 svg-sprite-plugin-fork 使用教程

阅读时长 15 分钟读完

简介

svg-sprite-plugin-fork 是一个 npm 包,它可以将多个 SVG 图标合并成一个雪碧图,并自动生成对应的 CSS 样式。它可以优化网页的加载速度,减少 HTTP 请求次数,帮助网站更快的加载,提高用户体验。

安装

使用方法

在配置文件中,使用 svg-sprite-plugin-fork 生成雪碧图。

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

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

在 HTML 中引用

配置选项

sprite (必填)

此选项确定了生成的雪碧图的属性,包括名称,路径,大小等等。

  • prefix: string

    • 可选,String,图标的前缀,用于避免文件名相同的冲突。默认值是 icon-
  • filename: string

    • 可选,String,定义您要生成的雪碧图的路径和名称。支持绝对路径和相对路径。默认值是 img/sprite.svg
  • dimensions: string[]

    • 可选,String[],size 可选属性的数组,将在每个符号元素中创建一个宽度和高度属性。默认值是 [],表示不包括 size 属性。
  • bust: boolean

    • 可选,Boolean,bust cache 是否开启。默认值为 false
  • generate: {}

    • 可选,Object,生成雪碧图的选项。

      • svg: {}

        • 可选,Object,SVG 压缩选项。

          • xmlDeclaration: boolean

            • 可选,Boolean,是否在生成的 SVG 文件中包含 XML 声明。默认值为 false,表示不包含 XML 声明。
          • doctypeDeclaration: boolean

            • 可选,Boolean,是否在生成的 SVG 文件中包含 doctype 声明。默认值为 false,表示不包含 doctype 声明。
      • symbol: boolean

        • 可选,Boolean,是否要为背景定位的图标生成一个程序化的 SVG。默认值为 false,表示不生成 Basic symbols。
      • use: boolean

        • 可选,Boolean,是否在样式和元素清单中包含链接, 这只有当使用 <symbol> 元素作为 SVG 标志的容器时才有意义。默认值为 false

input

可选的。可以是字符串或对象的数组,指定输入文件的路径。文件将被解析为 SVG,并将它们包含在符号定义中以生成雪碧图。

您也可以使用 glob 模式指定多个文件。例如,要从 assets 目录中加载所有 SVG 文件,请使用以下代码:

output

可选的。指定每个文件的输出选项。

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

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

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

styles

可选的。指定要生成的样式类型和其他选项。

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

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

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

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

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

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

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

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

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

spriteAttrs

可选的。在生成的雪碧图上设置指定的属性。

symbolAttrs

可选的。在生成的每个符号元素上设置指定的属性。

svgoConfig

可选的。SVGO(SVG 优化器)配置选项。

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

chunk

可选的。指定要在哪个 chunk 中链接生成的 JavaScript。

watch

可选的。如果设置为 true,则监视输入文件的变化并重新生成 sprite。

emitSymbols

可选的,默认值为 true。此选项确定是否在 build 输出目录中存储符号定义。如果状态为 false,该文件将设置为 webpack 信息中的公共资源。

outputPath

可选的。可以是字符串或函数,指定生成的 SVG 输出的路径。

transformData

可选的。指定在生成的雪碧图中使用统一数据。

customTemplates

可选的。自定义模板配置。

示例代码

下面是一个完整的 webpack 配置文件示例:

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

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

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

其它相关 npm 包依赖

总结

svg-sprite-plugin-fork 是一个非常实用的 npm 包,它可以在不降低网站性能的情况下,提高用户体验。我们可以将多个 SVG 图标合并成一个雪碧图,并自动生成对应的 CSS 样式。本文介绍了配置选项、安装、使用方法等详细教程,并附有示例代码。希望本文可以帮助读者使用这个强大的工具。

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

纠错
反馈