Я разрабатываю два пакета 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
со смешанными результатами.