Совместное использование инструментов в root package.json со всеми пакетами - PullRequest
1 голос
/ 20 сентября 2019

Я строю монорепо, используя Lerna и npm .Он имеет типичную структуру корня package.json и более пакетов в подкаталоге packages/*.

Каждый пакет имеет скрипт под названием build, который зависит от rimraf, tsc и нескольких других инструментов.

Для сборки всех пакетов я использую lerna run build, который отлично работает.Но при запуске npm run build в одном из пакетов по отдельности происходит сбой, потому что общие инструменты rimraf и т. Д. Не найдены.

Насколько я понимаю, оператор import сначала ищет пакеты в ./node_modules и, если не найден, он выглядит в ../node_modules и т. д. до тех пор, пока не появится корень файловой системы.Но package.json скрипты, кажется, проверяют только в ./node_modules/.binlerna run должен сделать что-то магическое, чтобы сделать рут ./node_modules/.bin доступным для скрипта сборки.

Как это должно работать?Нужно ли добавлять все инструменты ко всем пакетам?

1 Ответ

0 голосов
/ 25 сентября 2019

Быстрое решение было бы добавить различные сценарии сборки в корень package.json, например, так:

"build": "lerna run build --parallel",
"build:packageA": "lerna run build --parallel --scope packageA"
...