Icon Pipeline

0.2.0 · active · verified Tue Apr 21

Icon Pipeline is a utility for optimizing SVG icons and generating SVG sprites, along with individual optimized SVG files and a manifest of available icons. It aims to provide a 'no-nonsense' automated pipeline for icon management in web projects. As of version 0.2.0, the package is in early development, suggesting an irregular release cadence and that its API might not yet be stable. Its key differentiator lies in its integrated approach, handling both SVG optimization and sprite generation (for both HTML `<use>` and JavaScript injection) within a single tool, outputting multiple formats ready for different consumption patterns, which simplifies the icon build process compared to using separate tools for each step. It is designed to be included as a development dependency and run as part of a project's build process.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to configure and run the `icon-pipeline` using CommonJS `require`. It sets source and output directories, then executes the pipeline asynchronously to optimize SVGs and generate sprite files, logging the resulting metadata.

const path = require('path');
const iconPipeline = require('icon-pipeline');

const iconSrcFolder = path.join(__dirname, 'src', 'icons');
const iconOutputFolder = path.join(__dirname, 'build', 'icons');

// Ensure output directories exist before running, or icon-pipeline handles it.
// For demonstration, let's assume 'src/icons' contains some .svg files.
// Example: fs.mkdirSync(iconSrcFolder, { recursive: true });
// Example: fs.writeFileSync(path.join(iconSrcFolder, 'profile.svg'), '<svg viewBox="0 0 24 24"><path d="M12 4a4 4 0 014 4 4 4 0 01-4 4 4 4 0 01-4-4 4 4 0 014-4z"></path></svg>');

iconPipeline({
  srcDir: iconSrcFolder,
  outputDir: iconOutputFolder,
  includeSpriteInSrc: true,
  // Optional: disable additional svg classes
  // disableClasses: true,
  // Optional: namespace icon IDs
  // namespace: 'company'
}).then((iconData) => {
  console.log('Icon pipeline completed successfully.');
  console.log('Generated icon data:', iconData);
  // iconData will contain details like the paths to the generated files
}).catch((error) => {
  console.error('Error running icon pipeline:', error);
});

view raw JSON →