如何在 Yarn Workspaces 存储库中仅安装根包

Mat*_*bst 7 yarnpkg yarn-workspaces

yarn install --focus使用 Yarn Workspaces,可以非常轻松地在包目录之一内使用单个工作区安装包。

但是,有时我希望能够仅安装顶级package.json. 我在整个存储库中运行 linter,并且我希望能够安装 linting 依赖项,而无需安装工作区中所需的每个包。

我怎样才能做到这一点?

小智 0

如果您仍在使用 Yarn v1(据说 v2 和 v3 没有这个问题)并且需要在 CI 中执行此操作,您可以执行此 bash hack

tmp=$(mktemp) # create temporary file because jq can't push directly to package.json
jq 'del(.workspaces)' package.json > $tmp && mv $tmp package.json
Run Code Online (Sandbox Code Playgroud)

jq是一个用于操作 JSON 的程序,您必须单独安装它

这有效地从 package.json 中删除了“workspaces”键,因此唯一剩下的是根包

参考: