A demo to show how I prefer to set up an SVG icon system in Vue.js. You can see a demo live here. You don't have to do it this way, it's an opinionated example. More details for why it's set up in this manner in the Vue Cookbook.
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
For a detailed explanation on how things work, check out the guide and docs for vue-loader.