Я строю монорепо, используя Lerna и npm .Он имеет типичную структуру корня package.json
и более пакетов в подкаталоге packages/*
.
Каждый пакет имеет скрипт под названием build
, который зависит от rimraf
, tsc
и нескольких других инструментов.
Для сборки всех пакетов я использую lerna run build
, который отлично работает.Но при запуске npm run build
в одном из пакетов по отдельности происходит сбой, потому что общие инструменты rimraf
и т. Д. Не найдены.
Насколько я понимаю, оператор import сначала ищет пакеты в ./node_modules
и, если не найден, он выглядит в ../node_modules
и т. д. до тех пор, пока не появится корень файловой системы.Но package.json
скрипты, кажется, проверяют только в ./node_modules/.bin
.И lerna run
должен сделать что-то магическое, чтобы сделать рут ./node_modules/.bin
доступным для скрипта сборки.
Как это должно работать?Нужно ли добавлять все инструменты ко всем пакетам?