Создайте настоящую архитектуру плагина, используя angular ivy - PullRequest
2 голосов
/ 03 августа 2020

Я работаю над проектом, в котором мы хотим создать веб-интерфейс, используя «настоящую» архитектуру плагинов. Что я имею в виду, говоря «правда».

Представьте, что у вас есть веб-приложение для настройки. Интерфейс этого приложения может динамически изменяться, поскольку мы можем устанавливать функциональные возможности во время выполнения. Таким образом, мы можем добавлять некоторые новые функции во время выполнения. Моя идея - иметь простой пользовательский интерфейс, который может загружать несколько плагинов. Эти плагины могут быть загружены в этот простой пользовательский интерфейс как отдельные страницы.

В то время, когда я компилирую этот простой пользовательский интерфейс для конфигурации, я не знаю плагины, которые будут установлены позже. К сожалению. Моя идея состоит в том, чтобы иметь API отдыха, который предоставляет плагины (может быть, в виде модулей веб-пакета?), И чтобы простой пользовательский интерфейс просто загружал эти плагины при запуске.

Сегодня я провел небольшое исследование, и я совершенно не уверен если сделать что-то подобное возможно с angular Ivy. Поскольку я не эксперт, возможно, кто-нибудь сможет ответить на этот вопрос, прежде чем я собираюсь копать глубже.

Можно ли создать angular компоненты, которые не известны приложению во время компиляции, но являются позже загружается через бэкэнд?

Спасибо за короткий ответ

С уважением

1 Ответ

0 голосов
/ 21 августа 2020

Можно загрузить компонент, который был скомпилирован отдельно от основного приложения, над которым вы работаете, и загрузить его во время выполнения. Однако есть некоторые недостатки.

Давайте возьмем случай, когда вы предварительно отрендерили 5 различных плагинов для своего основного приложения, чтобы оно использовалось. У вас есть скомпилированные файлы. js, которые вы обслуживаете с сервера по запросу. Angular получает обновление с 8 -> Angular 9 (просто пример), а Angular 9 содержит критические изменения, поэтому он больше не совместим с 8 (в котором были созданы ваши плагины).

Ваши плагины станут бесполезными, если вы обновите основное приложение без повторной компиляции и исправления всех своих плагинов, что может стать проблемой, если вы не создали плагины самостоятельно.

...