When kicking off a new application, we always seem to have libraries we need to manually find and add, boilerplate code that needs to be written and a thorough build and testing process we need to get setup. Today we’re excited to announce the launch of Yeoman - a project which hopes to simplify these steps in your developer workflow.
At the moment, adding and managing the libraries used in our applications is a very manual process for most developers. Take jQuery: navigate to the project page for the library, grab the latest version and then have to manually save or copy it into our project.
With Yeoman, this can be done using one line in your terminal:
yeoman install jquery. That’s it. If you’re working on a Require.js/AMD project, we’ll even automatically wire up your configuration with the paths to the library you’ve just installed.
When jQuery releases a new version, we no longer have to go back to jQuery.com to fetch it. Simply run
yeoman update jquery and you’ll have it.
Thanks to Jacob Thornton, Alex MacCaw and their team for working on the Bower registry solution that makes these libraries available. You should check it out.
Generators - scaffolds for your projects
What if you know what type of initial setup you want to start your app off with?
Maybe it’s a simple app that doesn’t require a framework or something more sophisticated that uses AngularJS, Backbone.js or another MVC framework. You might even want to include Twitter Bootstrap in there to give your app a sexy look from the get go.
Rather than manually putting together the same boilerplate for an app every time then write the basic boilerplate for your models, views and so on, you can simply use our generators to do this for you.
yeoman init angular gives you the ability to create new AngularJS apps (or even smaller components of an app like controllers, routes or directives).
yeoman init backbone lets you do the same for Backbone.js apps (you can also individually create models, views, collections and so on)
and we have generators available for many other frameworks (including Ember) out of the box too.
LiveReload Watch Process
In 2012, we shouldn’t have to manually be refreshing our pages whenever we make changes to our application. Whether its Markdown files, scripts or preprocessor files like CoffeeScript or Sass, Yeoman comes with a powerful LiveReload watch process that will automatically reload your app so you don’t have to.
yeoman server to kick off a new local server and watch as changes to your app result in an instant reload.
Kick-ass Build System
We all know and love using grunt. It’s by far our build tool of choice for most projects, which is why Yeoman uses it as a baseline for our build process.
On top of this, we’ve added a number of highly customized build tasks that work well within the Yeoman workflow and will help keep your apps fast. Project optimization, declarative handlers for grouping scripts and styles you’d like minified together, application cache generation and more are all supported.
In the future, we’re going to work on exposing our tasks so grunt users who may not wish to use Yeoman can also benefit from the work we’ve done.
To find out more about Yeoman, take a look at our docs or watch our brand new screencast about the project, please feel free to check out http://yeoman.io.
Right now, we’re really interested in hearing what you think about Yeoman. If you have any comments we’d love to hear them and if you have any trouble installing the project or ideas for how we could improve it, feel free to reach out to us on GitHub.
I’d like to extend my thanks to my team-mates Paul Irish, Sindre Sorhus, Mickael Daniel, Eric Bidelman and the rest of the open-source contributors that helped make Yeoman a reality. Thanks all!