Yeoman is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
client-side
scaffolding tool for
web applications. Yeoman runs as a
command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
written for
Node.js
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
and combines several functions into one place, such as generating a starter template, managing dependencies, running
unit tests
In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&mda ...
, providing a local development server, and optimizing production code for deployment.
Yeoman was released at
Google I/O 2012.
Overview
Yeoman combines several open source tools in an attempt to streamline many aspects of the web development process.
Using a "generator" concept inspired by
Ruby on Rails, Yeoman first creates a basic project structure with vendor libraries included. The most basic Yeoman generator supplies the
HTML5 Boilerplate, Normalize.css, the
jQuery JavaScript library, and
Modernizr
Modernizr is a JavaScript library that detects the features available in a user's browser. This lets web pages avoid unsupported features by informing the user their browser isn't supported or loading a polyfill. Modernizr aims to provide feat ...
as a basic template for developers. Yeoman also runs interactively, asking the developer if they would like additional components such as
Twitter Bootstrap or RequireJS (a library to support
Asynchronous Module Definition) included. More sophisticated generators exist, such as ones which scaffold out a client-side MVC (
Model-View-Controller) framework, such as the
AngularJS
AngularJS is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to simplify both the development ...
or
Backbone JavaScript libraries. Yeoman is meant to be modular such that anyone can design a generator to create a template for a particular type of project. More than 5600 generators
have been created by the open source community.
Beyond providing a template to scaffold projects, Yeoman also helps with intermediary phases of web application development. Yeoman
lints code for potential problems using JSHint, runs unit tests, and provides a development server for working on an application. Finally, Yeoman also offers a
build automation process featuring optimizations such as
minification and concatenation of script files. All of these features use pre-configured tasks for the
Grunt
Grunt, grunts or grunting may refer to:
Sound and music
* Grunting (tennis), in tennis refers to the loud noise, sometimes described as "shrieking" or "screaming", made by some players during their strokes
* Death grunt, the death metal singin ...
JavaScript task runner.
Yeoman is an open source project whose code is hosted on
GitHub.
Some of the primary contributors are on the
Google Chrome
Google Chrome is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS ...
Developer Relations team, such as Addy Osmani,
Paul Irish, and Eric Bidelman.
References
External links
* {{Official website, http://www.yeoman.io/
GruntJSHTML5 BoilerplateModernizr
2012 software
HTML
JavaScript libraries
JavaScript programming tools
Software using the BSD license
Web development software