index.js 1.0 KB

1
  1. import e from"fs-extra";import{optimize as t}from"svgo";import a from"svgstore";function svgSprite(r){return(r||[{inFile:"src/assets/icons",outFile:"public/fonts",fileName:"symbol",simple:!0}]).forEach((r=>{const{inFile:l,outFile:i,fileName:o,simple:s=!0}=r;!function handleFile(r,l,i,o=!0){e.existsSync(l)||e.mkdirSync(l);const s=a({cleanDefs:!0}),n=e.readdirSync(r);n.forEach((a=>{const l=e.readFileSync(`${r}/${a}`,"utf8"),i=t(l);i.data=i.data.replace(/p-id="[^"]*"/g,"").replace(/class="[^"]*"/g,""),o&&i.data.indexOf("fill=")>-1&&-1===i.data.indexOf('fill="none"')&&(i.data=i.data.replace(/fill="[^"]*"/g,'fill="currentColor"')),o&&i.data.indexOf("stroke=")>-1&&-1===i.data.indexOf('stroke="none"')&&(i.data=i.data.replace(/stroke="[^"]*"/g,'stroke="currentColor"')),s.add(a.replace(".svg",""),i.data,{copyAttrs:["fill","stroke"]})}));const c=s.toString().replace(/<\?xml[^>]*>/g,"").replace(/<!DOCTYPE[^>]*>/g,"").replace(/<defs\/>/g,"");e.writeFileSync(l+"/"+i+".svg",c)}(l,i,o,s)})),{name:"rollup-plugin-stdf-icon"}}export{svgSprite as default};