I am starting to use these tools and am still in the process of understanding their meta-dependencies.
As I see Yeoman, it is a client for npm with some "wizard" capabilities. It already install the dependencies of the generator used. Why, where and how is Bower used and needed here? Why does Yeoman need another package system when it is already using npm?
I know that typically npm is used for server side code and Bower for client side code (but still on the server, browserify is used for client side).
npm and Bower are both package management system. Right? So why does Yeoman use two different package management system instead of sticking to one?
Example: I want to create a set of templates and components for my team to be able to quickly build a website following a common structure, style etc.
- First I create a little empty website with the basic css, menus. I make a Yeoman generator of it.
- Then I make a second generator to add an empty page to this website. (I would want a generator for this case so it create the entry in the menu, adds some tests etc).
- Then I want to offer some custom components, like a special form. I would typically package this in a bower package. But why not as another generator?
In this case a generator would totally fit the bill. It would be a very dumb generator, basically just importing the files in the right folder. It would not change the process for the developer.