people like to use module systems, there are many module systems available now, module systems need to solve the problems of script loading and dependency management
Some use asynchronous way like AMD(requirejs)
some use synchronous way like browserify, duo
howerver both have advantages and disadvantages
use `define`, `require` ?
write `messy configuration file` ?
alaways `build a bundle` ?
besides, dependency injection is above module system actually, it can work well with module system to use `require` to resolve library for example
angular.js has dependency injection , but does not handle scripts loading, the point 'dependency injection with asynchronous scripts loading' seems quite attractive