Есть ли способ использовать angular 2 без какого-либо загрузчика модуля?

Раздел Quickstart на официальном сайте angular описывает, как запустить самое простое приложение angular 2. По умолчанию SystemJS используется в качестве загрузчика модуля. Также есть примечание, говорящее, что есть альтернативы, которые работают очень хорошо. Я понимаю преимущества модулей-загрузчиков, но есть ли способ запустить приложение angular 2 без какого-либо загрузчика модулей?

Когда я просто удаляю конфигурацию SystemJS и исходный тег script SystemJS, я получаю сообщение об ошибке в консоли в файле angular2.dev.js:

Uncaught ReferenceError: System is not defined

Похоже, что angular 2 использует SystemJS. Итак, есть ли способ использовать angular 2 без какого-либо загрузчика модуля?

Ответ 1

Да, вы можете использовать простой ES5 javascript. Попробуйте этот простой пример.

Кроме того, вы можете попробовать официальный javascript 5 минут quickstart, где они создают пример, учитывая, что "ES5 JavaScript не имеет собственного модуля мы можем создать единое глобальное пространство имен для нашего приложения."

Это одно глобальное пространство имен (и загрузка правильных сценариев, описанных в учебнике (angular2 -all.umd.js и т.д.)) является одним из способов запуска без загрузчика модуля.

Эта структура также работает с Typescript или ES6. Вам нужно добавить свой любимый транспилер (Babel, Traceur и т.д.), чтобы скомпилировать ваш код на ES5 и использовать его с остальной частью кода из учебника, но я полагаю, что у вас уже есть этот запуск.

Ответ 2

Согласно этот blogpost, вы можете использовать компилятор TypeScript, чтобы пройти импорт и связать их. Эта функция является Конкатенация модулей AMD и System с --outFile. Я не тестировал это. Технически SystemJS по-прежнему является загрузчиком модуля, но он должен быть стандартизован.