为啥以及啥时候 yarn 决定不在工作空间中提升包裹?
Posted
技术标签:
【中文标题】为啥以及啥时候 yarn 决定不在工作空间中提升包裹?【英文标题】:Why and when does yarn decide not to hoist a package in a workspace?为什么以及什么时候 yarn 决定不在工作空间中提升包裹? 【发布时间】:2021-09-30 02:01:54 【问题描述】:我正在使用yarn workspaces
处理一个大型项目。我知道 yarn 工作空间本质上做了两件事
node_modules
的顶部。
但是,我注意到我的包仍然包含它们自己的代码 node_modules
,我不知道为什么。当我制作一个示例 monorepo 应用程序并说我将lodash
安装在一个应用程序中时,它会直接进入根目录node_modules
。
yarn 为什么以及何时决定在包的node_modules
中安装包?
【问题讨论】:
【参考方案1】:我在 yarn 的 Discords 上找到了答案。 yarn
将始终提升,除非它与另一个版本冲突。
【讨论】:
只是想补充一点,有时由于对等依赖关系,它可能会“冲突”——这样就可以在多个级别上存在完全相同的库版本的副本。一个示例冲突是described here;我拥有的真实案例是here。以上是关于为啥以及啥时候 yarn 决定不在工作空间中提升包裹?的主要内容,如果未能解决你的问题,请参考以下文章
Yarn Workspaces 是仅存在于一个工作空间中的提升模块
在 npm/yarn 工作空间中,包应该使用 src 还是 dist
我啥时候应该在常规线程上使用 asyncio,为啥?它是不是提供性能提升?