Modularizing project

Before ES6, there were a lot of module solutions for JavaScript that worked. The two most famous of them are AMD and commonjs. AMD is designed for asynchronous module loading, which is mostly applied in browsers, while commonjs does module loading synchronously, and that's the way the Node.js module system works.

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 ...

Get TypeScript Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.