System.js overview

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