Our journey started about seven years ago, when YUI3 was axed by Yahoo.
It ended with our app using ECMAScript modules (a.k.a. ES6 modules or ESM) natively in every environment, from development to production. No bundling, code chunking / splitting, or other complicated build setups.
Our app is a server-side-rendered, multi-page app. It has about 50–100 different pages, depending on how you count. Many of these pages have dedicated JS controllers. Most also use shared modules for UI components (e.g., Dropdown, Tabview), utilities (e.g., event delegation) and other stuff.
Most of these modules (controllers, components, utilities, etc) have dependencies on…