我无法理解纱线工作区背后的魔力。特别是它如何识别项目是monorepo并启用了工作区。
这是简单的工作区示例:
| jest/
| ---- package.json
| ---- packages/
| -------- jest-matcher-utils/
| ------------ package.json
| -------- jest-diff/
| ------------ package.json
我的问题是为什么我只能从yarn
包(或任何其他包)中运行yarn install
或jest-matcher-utils
,并为所有模块运行所有依赖项(包括安装在monorepo根目录中的devDependencies
在内? yarn
如何知道已为此项目启用了工作区?我很确定软件包(即jest-matcher-utils
)不包含任何有关monorepo的信息。
这是否意味着yarn install
在每个yarn
(甚至对于非monorepo项目)之前都在搜索另一个根package.json
?