Как установить зависимости плагина в 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
Может кто-нибудь предложить мне метод решения этой проблемы? Обратите внимание, что ручное обновление хост-приложения невозможно!