У меня есть lerna repo для разрабатываемого проекта. Он имеет несколько пакетов, которые зависят друг от друга. Чтобы упростить разработку, ни один из пакетов не публикуется, и они зависят от последней версии друг от друга.
Дерево каталогов
foo/
packages/
core/
package.json
errors/
package.json
Foo/пакеты/ядро /package.json
{
...
dependencies: {
"@foo/errors": "*"
}
}
У меня есть другой проект, bar
, который я использую для тестирования проекта lerna. В настоящее время я связываюсь с его зависимостями, используя локальный file:
dependency:
бар /package.json
{
...
dependencies: {
"@foo/core": "../foo/packages/core"
}
}
Этот подход дал мне мир неприятностей.
- Используя npm, меня постоянно поражают ошибки ENOENT.DELETE. Удаление моего пакета-lock.json и переустановка заняли годы моей жизни.
- Используя пряжу, я не смог
yarn install
вbar
. Пряжа следует заfile:
зависимость от@foo/core
, видит, что это зависит от@foo/errors
и не знает о символической ссылке lerna. Это заставляет его потерпеть неудачу, заявив, что не может найти@foo/errors
.
Это сделало запись фактического кода для этого проекта второстепенным для этого беспорядка управления зависимостями.
Как я могу сделать это (я чувствую себя довольно просто?)? Откройте для lerna/пряжи /npm/pnpm/shell-скрипты/MS DOS в этот момент.