NPM конфликтует с зависимостями при локальной установке с использованием пути к файлу - PullRequest
0 голосов
/ 08 мая 2019

Я разрабатываю два пакета npm, скажем, @ffx/alpha и @ffx/beta.Бета-пакет зависит от альфа-пакета.

alpha/package.json

{
   "name": "@ffx/alpha",
   "version": "1.0.0",
   "dependencies": {},
   "devDependencies": {
      "some-package": "1.0.0"
   }
}
beta/package.json

{
   "name": "@ffx/alpha",
   "version": "1.0.0",
   "peerDependencies": {
      "@ffx/alpha": "^1.0.0"
   },
   "devDependencies": {
      "some-package": "1.0.0"
   }
}

Для локального тестирования я собираю альфа-проект и устанавливаю встроенный код, используя следующую команду внутри корня бета-проекта:

npm install ../alpha/dist/@ffx/alpha

Кроме того, я начинаю строить проект Alpha в режиме наблюдения, чтобы изменения кода в проекте Alpha немедленно отражались в проекте Beta (внутри node_modules).

Моя проблема заключается в том, что в некоторых сценариях, когдаЯ использую одинаковую зависимость в обоих проектах Alpha и Beta (some-package в вышеупомянутой настройке). Beta-проект получает неверную ссылку на один и тот же пакет и выдает ошибку.

Пример: например, проект Alpha имеет следующий код,

...
let smpkg = new SomePackage();
...

В бета-проекте будет выдано сообщение об ошибке несоответствия типов.

ошибка TS2322: тип 'import ("~ / alpha / node_modules / some-package"). SomePackage'нельзя присвоить типу' import ("~ / beta / node_modules / some-package"). SomePackage ".

Есть ли способ выровнять обе ссылки, используя этот метод?

или естьЕсть ли альтернативный способ использовать пакеты локально перед публикацией?

ПРИМЕЧАНИЕ. Я уже пробовал npm link и npm pack со смешанными результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...