SVG icon system with angular-cli

Igor JS picture Igor JS · Dec 27, 2016 · Viewed 9.4k times · Source

I have an angular2 project which was created via angular-cli. In webpack there is a loader to load the svg sprite and also to generate that sprite from list of svgs. But how do I can use this functionality in my current project when angular-cli doesn't allow me to change webpack.config?

Thanks.

Answer

adriancarriger picture adriancarriger · Dec 27, 2016

Use svg-sprite

1. npm install --save-dev svg-sprite

2. Put your svgs in src/svgs

3. Add sprite-config.json to your project root

{
    "dest": "src/",
    "mode": {
        "css": {
            "dest": "sprites",
            "render": {
                "scss": {
                    "dest": "_sprite.scss"
                }
            }
        }
    }
}

4. Add a script to package.json

"sprites": "svg-sprite --config sprite-config.json src/svgs/*.svg"

5. Add @import to your main styles.scss

@import './sprites/sprite';

6. Run script using npm run sprites

Optional: create a build script

Add this to your scripts to build in one step

"start": "npm run sprites && ng serve",
"build": "npm run sprites && ng build --prod"