Options for SVG
Option: svg
The option to configure inlining SVG into HTML, JS and CSS.
Type:
type SvgOptions = {
  enabled?: boolean;
  test?: RegExp;
  inline?: {
    embed?: boolean;
    encoding?: 'base64' | false;
  };
};
enabled- enable this option. Defaultstrue.test- an RegEpx to apply this options to SVG files that pass test assertion. Defaults/\.svg/i.inline- options to inline SVG:embed- enable inline SVG by replacing<img>with<svg>, only in HTML. Defaultsfalse.
Equivalent to URL query:?inline=embedor?embed.encoding- data URL encoding, overridesgenerator.dataUrl.encodingWebpack option.
Values:'base64'- force encode the data URL asbase64. Defaults.
Equivalent to URL query:?inline=base64.false- force disable encoding and escape the utf-8 data URL.
Equivalent to URL query:?inline=utf8.
TODO: replace escape value with utf8 in code.
Choosing UTF-8 encoding over Base64 offers several advantages:
- The resulting string is at least 30% shorter.
 - It compresses more efficiently with gzip.
 - Browsers parse UTF-8 encoded strings faster than their Base64 equivalents.
 
tipTo inline a single SVG file use the
?inlineURL query.
Using query
?inline
Force inline SVG as a data URL using default encoding, ignoring the module type, even is it asset/resource.
<img src="./icon.svg?inline"/>
Output is depends on generator.dataUrl.encoding Webpack option, default encoding is base64:
<img src="data:image/svg+xml;base64,PHN2Zy..."/>
?inline=base64
Force inline SVG as a base64-encoded data URL, ignoring the generator.dataUrl.encoding Webpack option.
<img src="./icon.svg?inline=base64"/>
Output:
<img src="data:image/svg+xml;base64,PHN2Zy..."/>
?inline=utf8
Force inline SVG as a UTF-8-encoded escaped data URL, ignoring the generator.dataUrl.encoding Webpack option.
<img src="./icon.svg?inline=utf8"/>
Output:
<img src="data:image/svg+xml,%3Csvg%20...%2F%3E"/>
?inline=embed / ?embed
Force embed SVG as a raw content replacing <img> tag with <svg>, works only in HTML.
<img class="icon" alt="stern" src="./icon.svg?embed"/>
Output:
<svg class="icon" viewBox="0 96 960 960" width="48" height="48"><title>stern</title>...</svg>