I am developing Angular 2 payroll application intended for serveral user groups/roles - e.g. for accountants, for employee self-service, for managers. Each user group should have completely different page layout and menus. So - there should be separate *.html pages and - I guess - separate @NgModules for each *.html page. But all those pages and modules should share the (almost) same set of components, services and model classes.
How to modularize Angular 2 application? Or is it possible to do this at all? Maybe Angular 2 supports only SPA - single page for the entire application?