Как создать файл javascript, содержащий модуль Angular 2, который может использоваться другими приложениями, но загружается во время выполнения непосредственно с централизованного сервера и НЕ является в комплекте с кодом конкретного приложения?Как создать библиотеку angular2, которая может поддерживаться всеми загрузчиками сценариев
Подумайте об этом как о CDN для библиотеки Angular 2. Требование состоит в том, чтобы потребители этой библиотеки включали в себя один скрипт на своей странице.
Это требование реализовать его таким образом, поэтому мне не нужны никакие ответы, которые предполагают объединение библиотеки в выходные файлы отдельного приложения. Сценарий библиотеки должен быть загружен непосредственно с сервера библиотеки во время выполнения.
- Централизованная веб-приложение называется CustomAuth
- CustomAuth имеет единственный модуль Угловые 2 под названием
CustomAuthModule
- CustomAuthModule обнажает несколько служб и компоненты, которые могут быть использованы внешними Угловыми 2 приложениями.
Вот желаемый рабочий процесс (с высокого уровня).
- Разработчик хочет использовать CustomAuth в своем приложении Angular2 под названием BookLibrary.
- На странице индекса разработчика добавлен скрипт, который указывает на
http://server-url/CustomAuth/script
. Потребителю не нужно знать ничего о загрузчиках модулей, таких как systemjs или webpack. - В своем коде с угловым кодом они импортируют материал из модуля CustomAuth (сервисы, компоненты и т. Д.).
- Когда они скомпилируют свое приложение с использованием углового cli, он не будет включать код CustomAuth, но вместо этого предположит, что он будет загружен «на лету» во время выполнения.
Я проделал много исследований по этому вопросу, и мне не удастся это выяснить. Любая помощь будет принята с благодарностью.
Я думаю, что вы можете создать polyfil js для своего модуля, например, в примере plunker мы включаем угловой 2 polyfil http://embed.plnkr.co/w2FVfKlWP72pzXIsfsCU/. таким образом, он позволит пользователю импортировать js-файл, который пользователь может импортировать в thier.html и использовать его модуль. –