Как написали выше, requireJS — отличный вариант. От себя добавлю, что выбор скрипта, выполняющего роль script loader'а не столь важна, как сам используемый подход к управлению зависимостями/модульности (тот же requireJS можно использовать с несколькими подходами). Это может быть AMD (Asynchronous Module Definition) или CommonJS или UMD. Стоит также упомянуть о том, что в спецификации ES harmony уже есть модули и module loader'ы. Мой фаворит для применения в вебе — AMD, о чем и другие говорят. Система плагинов AMD, кстати, позволит вам загружать стили и любые другие ресурсы.
Если актуально, вот весьма исчерпывающая статья о модульности в JS (английский): Writing Modular JavaScript With AMD, CommonJS & ES Harmony. Я считаю, это должен знать каждый frontend developer.