top | item 6263031

Yeoman 1.0 Released

172 points| hswolff | 12 years ago |yeoman.io

55 comments

order
[+] Kiro|12 years ago|reply
I don't understand why people need all this. Setting up the boilerplate for a web app manually doesn't take any time at all and only needs to be done once so what is there to automate? Am I the only one still doing it the old school way? Please enlighten me.
[+] cjoh|12 years ago|reply
Yeoman sets up boilerplates for many different kinds of applications, with many different kinds of requirements, and gives you all the tools you need to get started.

This can be as convenient as typing in "yo bootstrap" to set up a generic bootstrap site, to "yo phonegap-backbone" to set up a workflow for a backbone and phonegap application. It not only sets up the directory structures for you, it also manages requirements inside of your project from external parties, test environments, and gives you a nice little live-preview setup with grunt automatically.

For me, it takes a lot of that project setup time out of the way, so I can get started coding rather quickly.

[+] ripter|12 years ago|reply
I keep trying Yeoman every couple of versions but so far, it breaks A LOT. It (used?) to set things up in a way that was hard to move to it another backend like rails. Oh, and it breaks a lot.

So I still do most things the old school way. Then I'm done and writing code instead of trying to figure out why Yeoman is broken or the app it generates isn't loading.

[+] lowboy|12 years ago|reply
Generators can be used for more than initial project scaffolding. Take the backbone[0] or ember[1] generators for models, views, templates, etc. that automatically generate the scaffolding work of creating dirs and files.

To get a the scaffolding for a backbone app, and the pieces of a "blog" MVC module:

    yo backbone # generates your application base and build workflow
    yo backbone:model blog
    yo backbone:collection blog
    yo backbone:router blog
    yo backbone:view blog
    grunt server
[0] https://github.com/yeoman/generator-backbone

[1] https://github.com/yeoman/generator-ember

[+] randall|12 years ago|reply
Bower for package management. JS needs a better package manager for browser packages. (NPM is great for Node-style packages, but bower is becoming the defacto standard for distribution of browser packages.)
[+] matthewlehner|12 years ago|reply
This is great - I've been using Yeoman since the first 1.0rc, and have to say that the tool chain is excellent and covers all the main parts of development with ease. Easy to bootstrap a new project, intelligent defaults for code organization, testing and minification for production.

I haven't found anything else that comes close for solely front end dev work.

[+] danso|12 years ago|reply
Yeoman is fantastic...I used it several months ago when deciding (foolishly, in retrospect) to learn both CoffeeScript and AngularJS at the same time while making an app. I had never put the effort into setting up grunt tasks manually...so working with automated building and testing were things I never had while developing with JS (which you can take to mean that my past work with JS has been mostly trivial).

Besides just being a great package overall, Yeoman really helped me appreciate how what seem like trivial niceties -- the speed of auto-build vs. stopping and restarting the local server and hitting Refresh -- can really make the difference between gradually losing interest because of the accumulation of small inconveniences and actually enjoying the development process enough to finish a project.

[+] adyus|12 years ago|reply
What resources can you recommend for learning AngularJS and CoffeeScript at the same time? I had the same inkling, and I'm intrigued that you found it foolish. Why is that?
[+] jgroszko|12 years ago|reply
The livereload stuff is magical. Best use of WebSockets ever...
[+] Brajeshwar|12 years ago|reply
Love Yeoman. For the love of god, how do I create 'pretty permalink' (Jekyll Style) with it - "about.html" to create "/about/index.html"?
[+] jenius|12 years ago|reply
Nginx - just remap the urls. We run http://carrot.is (not meant to be a plug, just an example) served statically via nginx and the urls are "pretty". You can use a little statement like this in your nginx config:

if ( $uri !~ /index\.html$) { rewrite ^(/.+)\.html$ $scheme://$host$1 permanent; }

[+] CognitiveLens|12 years ago|reply
+1 to jenius for a server-side solution but in addition:

Yeoman helps manage and coordinate various build tools, but for pretty permalinks on your production build, you're probably going to need something like a plugin for `grunt build` that renames files as they're copied into your /dist directory.

[+] thealphanerd|12 years ago|reply
For development we use grunt-connect-rewrite. It is a middleware for connect (which yeoman uses) that allows you to write custom rules similarly to how you would implement them in Apache.

You can see our connect setup in this gist

https://gist.github.com/TheAlphaNerd/6322927

[+] mrgreenfur|12 years ago|reply
Is this for Node.js only? They keep saying 'web apps' but never explicitly that it's not. NPM is node, right? (sorry, not too familiar with Node)
[+] saidajigumi|12 years ago|reply
Yeoman is purely development-time workflow tooling. It and its ecosystem (the "generator-XXXX" npm modules) use Node.js as the runtime on the development host. Typical Yeoman use would be 1) during development to speed dev, testing, etc., and 2) to build minified assets for deployment into production.

EDIT: Removed confusing "client-side" reference caught by 9oliYQjP -- thanks!

[+] _mhr_|12 years ago|reply
Yes and yes.

EDIT: No and yes.

[+] GVRV|12 years ago|reply
I just hope the generators API is now stable. I tried looking at the source of the various in-built generators to build a generator for BB10 apps, but every different generator was doing things in its own chaotic fashion. I got my generator somewhat working before future versions broke it.
[+] Rodeoclash|12 years ago|reply
Is there a changelog somewhere of what's added? One thing that's always frustrated me about this project is the lack of release notes on each new version.
[+] clux|12 years ago|reply
I am sure this is good, but just how much it pulls down to do something basic is ridiculous:

  $ yo webapp
  $ npm ls | wc -l
  240
[+] moogly|12 years ago|reply
Nice. I see they reverted the ng-boilerplate-based generators for AngularJS though. Hopefully that gets put in again soon.
[+] toblender|12 years ago|reply
Is there a difference between 1.0 and 1.0.0-rc.1.1?
[+] daemon13|12 years ago|reply
Can someone enlighten how is Yeoman vs grunt?
[+] ripter|12 years ago|reply
Yeoman uses grunt and sets up grunt for you in your new application.
[+] nivertech|12 years ago|reply
does it work with latest node v0.10.17 ?
[+] ch0wn|12 years ago|reply
Yes.
[+] jaxbot|12 years ago|reply
Should I be ashamed or proud that I believe in writing my own tools for my craft?
[+] lewispollard|12 years ago|reply
Depends if they're better or worse than Yeoman - I don't like to reinvent the wheel when Grunt etc is so flexible anyway. I like to write my own project-specific plugins for Grunt, though.
[+] piqufoh|12 years ago|reply
Where do you choose to draw the line for "writing my own tools"? Your text editor? Your JS engine? I like to think I choose the best tool for the job - if yours are better please let us know :-)
[+] lowboy|12 years ago|reply
I used to like rolling my own stuff, but now I prefer leveraging excellent tools that allow me to more quickly and efficiently build, deploy, and maintain my projects.