title: Difference between Grunt, NPM and Bower ( package.json vs bower.json )
body: <p>I'm new to using npm and bower, building my first app in emberjs :).<br>
  I do have a bit of experience with rails, so I'm familiar with the idea of files for listing dependencies (such as bundler Gemfile)</p>
  
  <p>Question: when I want to add a package (and check in the dependency into git), where does it belong - into <code>package.json</code> or into <code>bower.json</code>?</p>
  
  <p>From what I gather,<br>
  running <code>bower install</code> will fetch the package and put it in <code>/vendor</code> directory,<br>
  running <code>npm install</code> it will fetch it and put it into <code>/node_modules</code> directory. </p>
  
  <p><a href="https://stackoverflow.com/a/16493586/1592915">This SO answer</a> says bower is for front-end and npm is for backend stuff.<br>
  <a href="https://github.com/stefanpenner/ember-app-kit" rel="noreferrer">Ember-app-kit</a> seems to adhere to this distinction from the first glance... But instructions in gruntfile for <a href="https://github.com/stefanpenner/ember-app-kit/blob/master/Gruntfile.js#L40-L42" rel="noreferrer">enabling some functionality</a> give two explicit commands, so I'm totally confused here.</p>
  
  <p>Intuitively I would guess that  </p>
  
  <ol>
  <li><p><strong>npm install --save-dev package-name</strong> would be equivalent to adding the package-name to my package.json </p></li>
  <li><p><strong>bower install --save package-name</strong> might be the same as adding the package to my <em>bower.json</em> and running <strong>bower install</strong>?  </p></li>
  </ol>
  
  <p>If that is the case, when should I ever install packages explicitly like that without adding them to the file that manages dependencies (apart from installing command line tools globally)?</p>