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