pluginSprite
ルートパスのSVGファイルをスプライト化して出力するプラグイン。
- スプライト生成時にSVGOでコードを最適化
導入手順と使用例はガイドを参照してください。このページは設定値、コンポーネントのprops、制約をまとめています。
Table of Contents
オプション
pluginSprite({})config
- 型:
Config - デフォルト:
undefined
svgoのConfigを渡して最適化処理の内容を変更できます。
Sprite
SVGファイルをスプライトにまとめ、svgとuseで参照するコンポーネント。
- スプライト生成時にSVGOでコードを最適化
export type SpriteProps = {
src: string
symbolId?: string
className?: string
title?: string
attributes?: React.SVGProps<SVGSVGElement>
} & React.SVGProps<SVGSVGElement>src
src のファイル名が symbolId になり、ディレクトリ名が出力されるSVGスプライトのファイル名になります。
src: "/src/assets/sprite/square.svg"
=> sprite.svg#square
対象となったディレクトリ内のSVGファイルは1つのSVGスプライトファイルとしてまとめられ、ビルドパイプラインに乗せられます。
SVGスプライトファイル内のsymbolはsymbolId順に並べ替えられます。同じ出力内でIDが重複した場合は、MINISTA_SPRITE_DUPLICATE_SYMBOLで停止します。
symbolId
スプライト対象ディレクトリ内には既存のSVGスプライトファイルを混ぜることもできます。その場合、SVGスプライトのファイル名は symbolId にならないため、既存のSVGスプライトファイル内の symbol を使う場合はコンポーネントに symbolId を設定します。
診断
Sprite生成に失敗した場合、ビルドは次の診断コードを出力します。
MINISTA_SPRITE_DISCOVERY_FAILED: SVG 元ファイルの探索失敗MINISTA_SPRITE_READ_FAILED: SVG ファイルの読込失敗MINISTA_SPRITE_PARSE_FAILED: SVG/シンボル マークアップの解析失敗MINISTA_SPRITE_OPTIMIZE_FAILED: SVGOによる最適化失敗
診断にはSVGのプロジェクト内の相対パスが含まれます。
SVGの内部ID
グラデーション・clipPathなどの内部IDと参照には、衝突を避ける決定的な接頭辞を付けます。同じSVGの複数配置にも対応します。元の内部IDを外部CSSやJavaScriptから参照しないでください。class名は維持します。
ファイル名由来のシンボルIDと、元ファイル内のシンボルIDは維持します。同じ出力内のシンボルIDが重複すると、MINISTA_SPRITE_DUPLICATE_SYMBOLで両方の元ファイルを示して停止します。IDを一意に変更してください。ルートの描画属性と共有defsも保持します。
SVGOの独自設定で公開シンボルを削除・改名するとMINISTA_SPRITE_OPTIMIZE_FAILEDになります。cleanupIdsとremoveHiddenElemsを無効にしてください。