Как установить зависимости плагина в node_modules хост-приложения

Мы разрабатываем Angular Dashboard, и некоторое время назад возникла необходимость интегрировать сторонние модули (плагины) в нашу панель во время сборки без изменения исходного кода панели.

Я придумал решение с использованием Angular CLI, чтобы можно было интегрировать сторонний модуль, просто установив его из реестра npm и интегрировав его в панель мониторинга с помощью ng generate команда. Angular CLI копирует содержимое плагина в динамический компонент хост-приложения, а обо всем остальном заботится.

Теперь у меня есть некоторые вопросы, касающиеся разрешения зависимостей. Допустим, плагин требует typescript: 2.3.4 и приборная панель имеет typescript: 2.2.2, Я пытался положить typescript как плагин dependency и даже пытался положить его под peer-dependencies хэш и использовал npm-install-peers библиотека в сценарии postinstall, но дерево зависимостей всегда заканчивается так, что понятно.

host-application
 └──node_modules
     ├── typescript v2.2.2
     └─┬ plugin
       └──node_modules
          └── typescript v2.3.4

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

host-application
 └──node_modules
     ├── typescript v2.3.4
     └── plugin

Может кто-нибудь предложить мне метод решения этой проблемы? Обратите внимание, что ручное обновление хост-приложения невозможно!

0 ответов

Другие вопросы по тегам