У меня есть два монорепозитория, которые я хочу развивать одновременно. Вот структура:
Монорепо А
package.json
lerna.json
packages/
componentA1
componentA2
Монорепо B
package.json
lerna.json
packages/
componentB1
componentB2
Вот зависимости:
1) componentA2 depends on componentA1
2) componentB2 depends on componentA1
3) monorepoB depends on componentA2
я использую
lerna exec -- npm link
Командуйте обоими монорепозиторами. Это делает все хорошо в пределах одного монорепозитория. Теперь я регулярно
npm link componentA1 componentA2
внутри monorepoB в соответствии с их отношением зависимости.
Хотя это работает для компонента B2, оно не работает для компонента B1. Проблема, похоже, в том, что связывание не будет работать, если сам связанный компонент зависит от какого-то внутреннего пакета.
Если я сделаю npm ls componentA2 в monorepoB, я получу
└── @monorepoA/[email protected] -> /Users/kbhit/Sources/xxx/ddl-admin/ddl-admin-sass/packages/sass invalid
Но ссылки на componentA1 действительны (но у него нет транзитивных зависимостей).
Как решить эту проблему?
Ссылка npm создает действительные ссылки, об ошибках не сообщается, связывая каждый пакет из каталога пакетов с глобальной папкой узла. Все они доступны для связывания в другом проекте, но когда я потом выполняю npm ls на одном с транзитивными зависимостями, я получаю на нем «недействительный» тег. Моя OS i MacOS, ссылки абсолютные.





Что выводят команды
npm link? Вы вручную проверяли, какие ссылки создаются. Какие ссылки должны быть созданы, но на самом деле не создаются? Какая у вас ОС? Ссылки относительны или абсолютны?