vite svg图标生成精灵图(雪碧图)

SVG图标精灵图(雪碧图)可以通过将多个SVG图标合并成一个单独的SVG文件。这种方法可以减少HTTP请求,提高页面加载速度和性能。

1、安装依赖

npm i vite-plugin-svg-spritemap -D

2、配置

import { svgSpritemap } from 'vite-plugin-svg-spritemap'
{
  plugins: [
    ...
    svgSpritemap({
      pattern: 'src/xxx/*.svg', // 需要处理的svg路径
      filename: 'static/spritemap_home.svg', // 生成的精灵图路径
      currentColor: false,
      svgo: {
        plugins: [
          {
            name: 'preset-default',
            params: {
              overrides: {
                removeViewBox: false,
                removeEmptyAttrs: false,
                moveGroupAttrsToElems: false,
                // collapseGroups: false,
                removeDimensions: false,
                cleanupIds: {
                  preservePrefixes: ['sprite-'],
                },
              },
            },
          },
        ],
      },
    }),
  ],
}

想要生成多个精灵图,配置多组plugin即可

3、使用

// name:原svg文件名
export const Icon: React.FC<{ name: string }> = ({ name }) => (
  <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink">
    <use xlinkHref={`/static/spritemap_home.svg#${name}`} />
  </svg>
);

const App = () => {
  return <Icon name="arrow" />;
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容