Gerenciamento de dependência e ferramenta de compilação para JavaScript

Eu tenho muitos JStrechos e arquivos compartilhados em vários projetos. Eu tenho que copiar-passado-los em um único arquivo para cada projeto, ou servi-los como arquivos individuais no cdn. Ambas são idéias ruins.

Existe alguma ferramenta de gerenciamento e construção de dependências como o Maven para JavaScript? Idealmente, seria necessário um conjunto de dependências js e construir um único arquivo js que possa ser exibido no cdn.

Eu posso escrever um script para fazer isso. Mas estou procurando descobrir se existe algo comparável ao Maven para JS.

Atualização 2014: Com base nas respostas aqui e na minha pesquisa, seguem as ferramentas mais populares:

Bower, NPM, RequireJS, Browserify, Webpack, Grunt, Gulp

questionAnswers(3)

yourAnswerToTheQuestion