Yeoman (software)

Last updated
Yeoman
Original author(s) Google
Developer(s) Addy Osmani, [1] Paul Irish, [2] Eric Bidelman, [3] Sindre Sorhus, [4] Simon Boudrias, [5] Pascal Hartig [6]
Initial release22 August 2013;10 years ago (2013-08-22) [7]
Stable release
3.1.1 / 27 November 2019;4 years ago (2019-11-27) [8]
Repository github.com/yeoman/yo
Written in JavaScript
Operating system Linux, macOS, Windows
Platform Node.js
Type Web development tool
License BSD-2-Clause [9] [10]
Website yeoman.io

Yeoman is an open source client-side scaffolding tool for web applications. Yeoman runs as a command-line interface written for Node.js and combines several functions into one place, such as generating a starter template, managing dependencies, running unit tests, providing a local development server, and optimizing production code for deployment.

Contents

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, [11] 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 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 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. [12] More than 5600 generators [13] 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 JavaScript task runner.

Yeoman is an open source project whose code is hosted on GitHub. [14] Some of the primary contributors are on the Google Chrome Developer Relations team, such as Addy Osmani, Paul Irish, and Eric Bidelman. [15]

Related Research Articles

Scaffolding, as used in computing, refers to one of two techniques:

TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.

Svelte is a free and open-source front-end component framework and language created by Rich Harris and maintained by the Svelte core team members. Svelte is not a monolithic JavaScript library imported by applications: instead, Svelte compiles HTML templates to specialized code that manipulates the DOM directly, which may reduce the size of transferred files and give better client performance. Application code is also processed by the compiler, inserting calls to automatically recompute data and re-render UI elements when the data they depend on is modified. This also avoids the overhead associated with runtime intermediate representations, such as virtual DOM, unlike traditional frameworks which carry out the bulk of their work at runtime, i.e. in the browser.

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

<span class="mw-page-title-main">Google Closure Tools</span> JavaScript developer toolkit

Google Closure Tools is a set of tools to help developers build rich web applications with JavaScript. It was developed by Google for use in their web applications such as Gmail, Google Docs and Google Maps. As of 2023, the project had over 230K LOCs not counting the embedded Mozilla Rhino compiler.

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 is not supported or loading a polyfill. Modernizr aims to provide feature detection in a consistent and easy to use manner that discourages the use of failure-prone browser sniffing.

<span class="mw-page-title-main">Amber Smalltalk</span>

Amber Smalltalk, formerly named Jtalk, is an implementation of the programming language Smalltalk-80, that runs on the JavaScript runtime of a web browser. It is designed to enable client-side development using Smalltalk. The programming environment in Amber is named Helios.

In software development, a polyfill is code that implements a feature of the development environment that does not natively support the feature. Most often, it refers to a JavaScript library that implements an HTML5 or CSS web standard, either an established standard on older browsers, or a proposed standard on existing browsers. Polyfills are also used in PHP and Python. Formally, "a polyfill is a shim for a browser API."

Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly, primarily for execution in web browsers.

<span class="mw-page-title-main">PDF.js</span> PDF viewer in JavaScript included in Mozilla Firefox

PDF.js is a JavaScript library that renders Portable Document Format (PDF) files using the web standards-compliant HTML5 Canvas. The project is led by the Mozilla Corporation after Andreas Gal launched it in 2011.

WebSharper is an open-source and commercial web-programming framework that allows web developers to create and maintain complex JavaScript and HTML5 front-end applications in the F# programming language. Other than a few native libraries, everything is F# source.

<span class="mw-page-title-main">Paul Irish</span> American web developer

Paul Irish is an American front-end engineer and a developer advocate for the Google Chrome web browser. He is an evangelist in web technologies, including JavaScript and CSS. In 2011, he was named Developer of the Year by The Net Awards for his contributions to the web development landscape and his participation in many popular open source projects.

There are different JavaScript charting libraries available. Below is a comparison of which features are available in each.

<span class="mw-page-title-main">WinJS</span> Open-source JavaScript library

The Windows Library for JavaScript is an open-source JavaScript library developed by Microsoft. It has been designed with the primary goal of easing development of Windows Store apps for Windows 8 and Windows 10, as well as Windows Phone apps for Windows Phone 8.1, Windows 10 Mobile and Xbox One applications using HTML5 and JavaScript, as an alternative to using WinRT XAML and C#, VB.NET or C++ (CX).

Web Components are a set of features that provide a standard component model for the web allowing for encapsulation and interoperability of individual HTML elements. Web Components are popular approach to build microfrontends.

<span class="mw-page-title-main">JHipster</span> Web application generator

JHipster is a free and open-source application generator used to quickly develop modern web applications and Microservices using Angular or React and the Spring Framework.

<span class="mw-page-title-main">Vue.js</span> Open-source JavaScript library for building user interfaces

Vue.js is an open-source model–view–viewmodel front end JavaScript library for building user interfaces and single-page applications. It was created by Evan You, and is maintained by him and the rest of the active core team members.

gulp is an open-source JavaScript toolkit, used as a streaming build system in front-end web development.

Grunt is a JavaScript task runner, a tool used to automatically perform frequent tasks such as minification, compilation, unit testing, and linting. It uses a command-line interface to run custom tasks defined in a file. Grunt was created by Ben Alman and is written in Node.js. It is distributed via npm. As of October 2022, there were more than 6,000 plugins available in the Grunt ecosystem.

This is a list of articles related to the JavaScript programming language.

References

  1. "Commits by addyosmani · yeoman/yo". GitHub . Retrieved 2020-12-31.
  2. "Commits by paulirish · yeoman/yo". GitHub . Retrieved 2020-12-31.
  3. "Commits by ebidel · yeoman/yo". GitHub . Retrieved 2020-12-31.
  4. "Commits by sindresorhus · yeoman/yo". GitHub . Retrieved 2020-12-31.
  5. "Commits by SBoudrias · yeoman/yo". GitHub . Retrieved 2020-12-31.
  6. "Commits by passy · yeoman/yo". GitHub . Retrieved 2020-12-31.
  7. "Release Date of Version 1.0.0" . Retrieved 2020-12-31.
  8. "Releases · yeoman/yo". GitHub . Retrieved 2020-12-31.
  9. "LICENSE file on GitHub". GitHub . Retrieved 2020-12-31.
  10. "License field from browserify - npm" . Retrieved 2020-12-31.
  11. Osmani, Addy. July 3rd, 2012. "Saving Time With Rails-Inspired Generators Yeoman Generators."
  12. yeoman.io, "Generate a Generator." Accessed July 30, 2013.
  13. "The web's scaffolding tool for modern webapps | Yeoman". yeoman.io. Retrieved 2020-03-08.
  14. "yeoman/yo". GitHub . Retrieved 26 January 2014.
  15. "Contributors to yeoman/yo". GitHub . Retrieved 26 January 2014.