

Yeoman 1.0 Released - hswolff
http://yeoman.io/?v=1.0

======
Kiro
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.

~~~
randall
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.)

~~~
Kiro
I haven't understood the need for Bower either. If I want say jQuery or
Angular I just go to their websites and copy the CDN url. I don't see the
problem to be honest.

~~~
biscarch
Well, I can see it being useful if you're already on the command line or if
you have to set up a lot of different projects with different configurations.

~~~
chhuang
From what I understood is:

For normal approach:

1\. Google CDN jquery

2\. Get the CDN link of jQuery

3\. Add it to your template

For Yeoman/Bower:

1\. bower install jquery

2\. Get the link/path where bower installed jQuery

3\. Add it to your template

------
nivertech
Duplicated:

[https://news.ycombinator.com/item?id=6263380](https://news.ycombinator.com/item?id=6263380)

------
matthewlehner
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
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
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?

~~~
danso
Actually I need to write a blog post about this...it was "foolish" in that it
was learning two kinds of worldviews at once (CoffeeScript vs JS and AngularJS
vs. other frameworks) though since I wasn't doing it for a on-the-job project
that I (or anyone else) would have to maintain, it wasn't "foolish" in the
disastrous way :)

But now that I think more about it, doing both at once helped me with how I
generally learn things, which is: copy example applications and go through the
motions, and slowly experiment/break things until it all makes sense.

However, the problem with this is that if you kind-of-know something, you just
mindlessly retype the code without getting much benefit. I kind-of-know MVC
(or whatever Angular is) frameworks so to make things a challenge, I took the
Todo/Hello-world Angular apps and re-wrote them in CoffeeScript. There was
enough mental exercise there that my brain didn't atrophy from looking at
Todo/Hello-world-level code, and at the same time, I got some practice with
CoffeeScript.

I guess the main "resource" that made this possible was with Yeoman, which
chirped at me everytime I screwed up in CoffeeScript (i.e. missed a
whitespace) and made it easy, via TDD, to slowly construct an Angular app
despite being incredibly confused with some of Angular's magic.

------
Brajeshwar
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
Nginx - just remap the urls. We run [http://carrot.is](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; }

~~~
sethammons
Offtopic - your username reminds me of a line from the Beverly HillBillies
that went something like: "Hi, I'm Jethro Bodine; initials JB. Turn it around,
BJ -- Boy Jenius." Ha ha.

------
mrgreenfur
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
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!

~~~
9oliYQjP
Actually, while client-side development is where it has gained the most
popularity, I use some Yeoman generators for setting up some backends. Here is
one such example that scaffolds a Node project:
[https://github.com/yeoman/generator-
node](https://github.com/yeoman/generator-node). There's really nothing
stopping you from using Yeoman for live reloading of a frontend and backend
stack.

------
GVRV
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
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
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
Nice. I see they reverted the ng-boilerplate-based generators for AngularJS
though. Hopefully that gets put in again soon.

------
toblender
Is there a difference between 1.0 and 1.0.0-rc.1.1?

------
daemon13
Can someone enlighten how is Yeoman vs grunt?

~~~
ripter
Yeoman uses grunt and sets up grunt for you in your new application.

------
nivertech
does it work with latest node v0.10.17 ?

~~~
ch0wn
Yes.

~~~
nivertech
Are you sure?

    
    
        $ node -v
        v0.10.17
        
        $ yo -v
        1.0.0
        
        # this works:
        $ yo webapp
        ...
        
        # this doesn't:
        $ yo
        ...
        fs.js:427
          return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                        ^
        TypeError: path must be a string
            at Object.fs.openSync (fs.js:427:18)
            at Object.fs.readFileSync (fs.js:284:15)
            at yoyo.Base.rootGeneratorName (/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/lib/base.js:533:24)
            at yoyo.Base._setStorage (/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/lib/base.js:542:34)
            at yoyo.Base (/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/lib/base.js:85:8)
            at new yoyo (/usr/local/lib/node_modules/yo/bin/yoyo.js:12:18)
            at Environment.create (/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/lib/env.js:366:10)
            at Environment.run (/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/lib/env.js:409:24)
            at init (/usr/local/lib/node_modules/yo/bin/yo:97:7)
            at pre (/usr/local/lib/node_modules/yo/bin/yo:109:3)

~~~
ch0wn
Guessing here, but you might have some older, incompatible generators
installed. Could you try to reinstall your global generators?

~~~
nivertech
I wiped out all npm modules and reinstalled node. Still getting error. I
installed yeoman using:

    
    
        sudo npm install -g yo generator-webapp grunt-contrib-compass

~~~
ch0wn
That shouldn't happen then. Would you mind opening an issue at
[https://github.com/yeoman/yo/issues](https://github.com/yeoman/yo/issues)
about this?

~~~
saidajigumi
For those following along at home, this issue is now tracked at:

[https://github.com/yeoman/yo/issues/69](https://github.com/yeoman/yo/issues/69)

------
jaxbot
Should I be ashamed or proud that I believe in writing my own tools for my
craft?

~~~
lewispollard
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.

