Я не могу понять магию пряжи рабочих пространств.Особенно то, как он может распознать, что проект является monorepo и рабочие пространства включены.
Это простой пример рабочих пространств:
| jest/
| ---- package.json
| ---- packages/
| -------- jest-matcher-utils/
| ------------ package.json
| -------- jest-diff/
| ------------ package.json
Мой вопрос: почему я могу просто запустить yarn
или yarn install
из пакета jest-matcher-utils
(или любого другого) и все зависимости для всех модулей (включая devDependencies
в корне monorepo) будут установлены?Откуда yarn
знает, что рабочие области включены для этого проекта?Я почти уверен, что пакеты (то есть jest-matcher-utils
) не содержат никакой информации о том, что это лист monorepo.
Означает ли это, что перед каждым yarn install
(даже для проектов, не связанных с monorepo), yarn
поиск другого корня package.json
?