title: How do Bower and NPM couple together?
body: <p>So to preface my question, I'm coming from a Java back-end developer perspective, where we use Maven to build.  I have worked on testing on a server-side Node project we recently developed, but now I'm moving on to setting up testing on our front-end JavaScript client.  I'm not very well-versed in front-end development and this is really my first foray into that.</p>
  
  <p>All that being said, I'm thinking I'm going to use the following technology stack for our front-end testing: Eclipse IDE, Maven build process, Mocha testing framework, Chai assertion framework, Nock HTTP mocking framework, Sinon mocking/spying/stubbing framework, Rewire dependency injection framework.  That all should be fine, and since that's the stack we use for our Node project, I would like to keep the front-end setup as similar as possible.</p>
  
  <p>So, this is where my knowledge breaks down, though.  I cannot seem to understand the difference in dependency management between our Node project and our front-end JavaScript project.  I cannot see why I would not continue to use NPM, integrated into our Maven build, to handle dependency management and installation.</p>
  
  <p>I see many people advocating Bower, but after looking at its page and docs, I still am not seeing what niche it fills that NPM would not.  I am seeing a lot of adamant rejection of NPM insofar as browser dependency management goes; the main reasoning being that NPM is designed for server-side Node projects, and not for the front-end space.  But who cares?  Regardless of its initial design's intentions, if it does what I need it to do, where is the downside?</p>
  
  <p>Please approach this "question" as if I am a complete newbie.  I have realized as I've gone through this process and research, that I have very large dearths of knowledge in regards to the front-end side of things.  With that being said, be as specific and thorough as possible in your answers, please.  I would be happy to share project configuration and such, as needed, in order to help paint a picture of the space I'm in.  Thanks for any feedback!</p>