Рабочие пространства пряжи. Почему можно установить все зависимости проекта изнутри пакета

Я не могу понять магию пряжи рабочих пространств. Особенно то, как он может распознать, что проект является 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?

0 ответов

Другие вопросы по тегам