如何在 Yarn 工作区的一个 package.json 文件中安装包?
Posted
技术标签:
【中文标题】如何在 Yarn 工作区的一个 package.json 文件中安装包?【英文标题】:How to install packages in just one package.json file in Yarn workspaces? 【发布时间】:2020-06-30 08:58:53 【问题描述】:我设置了经典的 Lerna。根目录,packages文件夹,2个子目录
我只想在一个包中运行yarn install
,然后安装这个包的依赖项。出于某种原因,当我运行它时(甚至在这个文件夹中),它会在根、packageA 和 packageB 中安装node_modules
。
是否有解决方案只允许我为所选目录安装node_modules
?
【问题讨论】:
你试过lerna add package --scope=module
github.com/lerna/lerna/tree/master/commands/add#examples吗?
@Clarity 但我想说将我的 20 个依赖项添加到 packageA 中,而忽略 packageB 中的其他 5 个依赖项。为什么只在一个包中安装依赖项这么难?
【参考方案1】:
查看“重点工作区”https://classic.yarnpkg.com/blog/2018/05/18/focused-workspaces/
从你要处理的包里面,运行
yarn install --focus
并且 Yarn 将安装本地依赖项以及 monorepo 兄弟依赖项中的任何依赖项,但 不是 monorepo 中所有包的所有依赖项。
【讨论】:
至少对于 Yarn 1,只有在所有依赖项都已推送到远程注册表时才有效:github.com/yarnpkg/yarn/issues/5864以上是关于如何在 Yarn 工作区的一个 package.json 文件中安装包?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Yarn 工作区/nohoist 时,如何控制 Yarn 为依赖项的 peerDependency 选择哪个版本?
如何在 node-sass 工作的情况下使用 yarn install --offline?