@fluentui/react-icons-svg-sprite-subsetting-webpack-plugin
v2.0.320-alpha.1
Published
Webpack plugin to subset or merge SVG sprite assets used by @fluentui/react-icons svg-sprite APIs.
Downloads
42
Maintainers
Keywords
Readme
@fluentui/react-icons-svg-sprite-subsetting-webpack-plugin
Webpack plugin that optimizes the @fluentui/react-icons/svg-sprite/* entrypoints.
It supports two modes:
atomic(default): subsets each emitted sprite asset (atoms/svg-sprite/*.svg) to only the<symbol>IDs that are actually used.merged: emits a single merged sprite asset containing only the used<symbol>IDs, and rewrites internal sprite imports so all icons reference the merged file.
Install
NOTE: available as ALPHA Prerelease.
Install via
npm i @fluentui/react-icons-svg-sprite-subsetting-webpack-plugin@alpha
npm i -D @fluentui/react-icons-svg-sprite-subsetting-webpack-plugin@alphaUsage
const { default: FluentUIReactIconsSvgSpriteSubsettingPlugin } = require('@fluentui/react-icons-svg-sprite-subsetting-webpack-plugin');
module.exports = {
// ...
plugins: [
new FluentUIReactIconsSvgSpriteSubsettingPlugin({
mode: 'atomic', // or 'merged'
generateSpritesManifest: false,
injectSpritesInTemplates: false,
// mergedSpriteFilename: 'fluentui-react-icons.[contenthash].svg'
}),
],
};Options
mode?: 'atomic' | 'merged'(default:atomic)atomic: subsets each emitted sprite asset (atoms/svg-sprite/*.svg).merged: emits a single merged sprite and rewrites sprite imports to it.
mergedSpriteFilename?: string- Only valid in
mergedmode. - Supports
[fullhash]and[contenthash]placeholders only.
- Only valid in
forceEnableUsedExports?: boolean(default:true)- Enables
optimization.usedExportsif not set.
- Enables
generateSpritesManifest?: boolean(default:false)- Emits
sprites-manifest.jsonwith entrypoint-level sprite usage.
- Emits
injectSpritesInTemplates?: false | { mode: 'inline' | 'reference' } | truefalsedisables HTML injection.trueis shorthand for{ mode: 'inline' }.inlineinjects a merged inline<svg>at the start of<body>.referenceinjects<link rel="preload">tags for used sprite assets.
Notes
- For best results, run Webpack in production mode (or enable
optimization.usedExports) so the plugin can detect which icon exports are used. injectSpritesInTemplatesrequireshtml-webpack-pluginto be installed and configured in your Webpack build.
