Во втором ангуляре используют SystemJS. Однако это универсальный загрузчик модулей для javascript поддерживающий все популярные форматы - ES6, AMD, CommonJS и его можно использовать в любом javascript-проекте.
На данный момент он еще в активной фазе разработки и у него иногда меняются настройки, но в целом пользоваться уже можно.
Простейший вариант использования такой:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<script src="./node_modules/systemjs/dist/system.src.js"></script>
<script>
System.import('./app.js');
</script>
</body>
</html>
SystemJS автоматически определит какой формат модулей используется в файле и использует его для загрузки зависимостей.
Например, если в файле app.js
написано что-нибудь вроде этого:
var myModule = require('./my-module.js');
console.log(myModule.greeting('Jhon'));
то my-module.js
автоматически подгрузится и код корректно отработает. При этом оба файла будут завернуты в функции, так что вам самим не нужно заворачивать свой код в IIFE чтобы не загаживать глобальный скоуп.
Из коробки SystemJS поддерживает AMD и CommonJS. Чтобы использовать синтаксис ES6, то понадобится подключить либо traceur.js, либо browser.js из babel, либо typescript.js.