Во втором ангуляре используют 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.