Мы разрабатываем приложение Electron с зависимостью от SDK (которое мы также разрабатываем).Как правило, как только SDK готов, мы делаем новую версию и обновляем приложение Electron, чтобы использовать его.
Но я хотел бы внести локальное изменение в SDK и использовать приложение Electron.Это оказывается проблематичным.
Подход, который я выбрал, состоит в том, чтобы из каталога приложений Electron запустить
npm install /path/to/sdk/moduleB
, т.е. на основе ответов на какуказать локальные модули как зависимости пакета npm
Однако есть проблема.Подмодули SDK регистрируются с помощью модуля core .т.е. сделать экземпляр доступным.
Когда я использую локальный путь к moduleB, он не может найти основной модуль.Я не указываю ядро как зависимость в moduleB.Но если я это сделаю, npm установит копию под
/path/to/sdk/moduleB/node_modules/core
вместо того, чтобы повторно использовать модуль, уже определенный как
./node_modules/core
, т. Е. Даже если они используют ту же версию.
Такое поведение (по крайней мере, переустановка ядра) имеет некоторый смысл, если вы понимаете, как npm разрешает одну и ту же зависимость в разных версиях.
https://medium.com/learnwithrahul/understanding-npm-dependency-resolution-84a24180901b
и
https://docs.npmjs.com/cli/install
npm install:
Установите пакет в каталог как символическую ссылку в текущем проекте.Его зависимости будут установлены, прежде чем он будет связан.Если он находится внутри корня вашего проекта, его зависимости могут быть перенесены на верхний уровень node_modules, как и для других типов зависимостей.
Но кажется, что установка создает символическую ссылку, и npm не может искатьвернуться в
./node_modules/core
Единственный способ, которым я смог обойти это, - скопировать
/path/to/sdk/moduleB
в
./node_modules/moduleB
Есть ли лучшерешение, которое позволит мне повторно использовать зависимость
./node_modules/core
?