To make it work asynchronously, writing an AMD module takes more characters. And due to the popularity of tools such as browserify and webpack, commonjs becomes popular even for browser projects.
The proper granularity of internal modules could help a project keep its structure healthy. Consider a project structure like this:
project ├─controllers ├─core │ │ index.ts │ │ │ ├─product │ │ index.ts │ │ order.ts │ │ shipping.ts ...