# Yeoman — Scaffolding Tool for Modern Web Applications > A command-line scaffolding system that uses community generators to create project boilerplates for any web stack or framework. ## Install Save as a script file and run: # Yeoman — Scaffolding Tool for Modern Web Applications ## Quick Use ```bash # Install Yeoman and a generator npm install -g yo generator-webapp # Scaffold a new project yo webapp # List installed generators yo --generators # Search for generators on npm npm search yeoman-generator ``` ## Introduction Yeoman is a command-line scaffolding tool that generates project boilerplates from reusable templates called generators. Rather than copying starter repos manually, Yeoman provides an interactive prompt-driven workflow that configures the output based on your choices. Thousands of community generators exist for React, Angular, Node.js, and many other stacks. ## What Yeoman Does - Scaffolds new projects from interactive generator templates - Provides a consistent CLI interface across all generator types - Supports composable sub-generators for adding features to existing projects - Manages file conflicts when re-running generators on existing codebases - Offers a generator authoring API for building custom scaffolding workflows ## Architecture Overview Yeoman's core (yo) is a runner that discovers and executes generator packages installed via npm. Each generator is a Node.js module that extends Yeoman's Base class and defines a priority-based run loop (initializing, prompting, configuring, writing, install). The templating layer supports EJS by default, and the file system abstraction handles conflict resolution when generating into non-empty directories. ## Self-Hosting & Configuration - Install yo globally via npm to get the Yeoman CLI - Install generators individually from npm (e.g., generator-react, generator-node) - Create custom generators using the generator-generator bootstrapper - Store user preferences in .yo-rc.json for reproducible scaffolding - Share private generators via npm private registry or local file paths ## Key Features - Thousands of community generators covering most frameworks and languages - Interactive prompts that customize generated output per project - Composability for combining multiple generators in a single run - Conflict resolution for safely re-running generators on existing projects - Generator authoring API with built-in testing utilities ## Comparison with Similar Tools - **Create React App / create-next-app** — single-framework scaffolders; Yeoman is framework-agnostic - **Hygen** — template-based with simpler conventions; Yeoman offers richer interactive prompts - **Plop** — micro-generator for adding files to existing projects; Yeoman scaffolds entire projects - **Cookiecutter** — Python-based templating; Yeoman is Node.js-native with npm distribution ## FAQ **Q: Is Yeoman still relevant with modern framework CLIs?** A: Yeoman remains useful for custom enterprise scaffolding, multi-framework teams, and scenarios where framework-specific CLIs are too opinionated. **Q: How do I create my own generator?** A: Run yo generator-generator to scaffold a new generator project, then implement the prompting and writing methods. **Q: Can I use Yeoman for non-JavaScript projects?** A: Yes. Generators can scaffold any file type. Community generators exist for Go, Python, Java, and infrastructure-as-code projects. **Q: Does Yeoman install dependencies automatically?** A: By default, generators run npm install or yarn after scaffolding. This behavior is configurable per generator. ## Sources - https://github.com/yeoman/yeoman - https://yeoman.io --- Source: https://tokrepo.com/en/workflows/asset-bade276e Author: Script Depot