JSPM

laravel-mix-svg-sprite

0.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 756
  • Score
    100M100P100Q113091F
  • License MIT

SVG sprite component for Laravel Mix

Package Exports

  • laravel-mix-svg-sprite

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (laravel-mix-svg-sprite) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

laravel-mix-svg-sprite

Node Version Latest Version on NPM Code Style Software License Run Status Coverage Badge

SVG sprite component for Laravel Mix, wrapping SVG sprite loader and SVGO loader.

Install

Install with npm:

$ npm install --save-dev laravel-mix-svg-sprite

Usage

This component adds an extra API to Mix to create a SVG sprite of separate SVG files. It can be used just like the other API's of Mix:

// webpack.mix.js

let mix = require('laravel-mix');
require('laravel-mix-svg-sprite');

mix
    .js('src', 'output')
    .sass('src', 'output')
    .svgSprite('src/icons', 'output/sprite.svg', [loaderOptions], [pluginOptions]);

N.B. This component only adds a loader to the Webpack configuration, it doesn't glob your directory and include every file it finds. You need to require the icons from within your code (JS, CSS, etc.) just like other modules to have them added to the sprite!

Configuration

The config of this component is passed directly to svg-sprite-loader and its plugin. Please refer to their documentation for further details. This are our defaults:

Config.svgSprite = {
    /*
     * @see https://github.com/kisenka/svg-sprite-loader#configuration
     */
    loaderOptions: {
        extract: true
    },
    /*
     * @see https://github.com/kisenka/svg-sprite-loader#configuration
     */
    pluginOptions: {
        plainSprite: true
    }    
};

Configuration for SVGO is copied from Config.imgLoaderOptions.svgo. If you disable SVGO for the image-loader, it is also disabled for this component.

License

laravel-mix-svg-sprite is licensed under the MIT License - see the LICENSE file for details.

Credits

This component is a wrapper for SVG sprite loader and SVGO loader, so a huge thanks to their contributors!