纱线v2 "松散 "模式下的回弹池

问题描述 投票:0回答:1

来自 文件 纱线v2的松散模式。

Yarn提供了一个 "松散 "模式,它将导致PnP链接器与node-modules hoister协同工作--我们将首先生成在典型的node_modules安装中会被提升到顶层的包的列表,然后将这个列表作为我们所说的 "回落池"。

在运行时,如果任何一个版本的依赖最终都进入了回调池,那么需要未列出的依赖的包仍然可以访问它们(具体哪些包允许依赖回调池可以通过pnpFallbackMode进行调整)。

那么这个 "后备池 "到底在哪里呢?在 .yarn/cache? 我在一个有很多deps的项目中激活了松散模式,但和之前的状态相比,没有发现任何区别。

yarnpkg yarnpkg-v2 yarnpkg-pnp
1个回答
1
投票

在松散模式下,Yarn 2不安装任何新的依赖关系,它只添加后备决议。后备池是一组可以被所有依赖项使用的决议,它是一个存储于 .pnp.js 归档 fallbackPool 属性。你的所有依赖关系都可以访问已经被提升到根目录下的依赖关系。node_modules 文件夹。纱线2通过运行 node_modules 安装策略在内存中,并获取挂接到根目录的依赖列表。node_modules 文件夹。

请注意,该配置选项与 pnpMode: loose 是一个 pnpFallbackMode 选项,决定谁可以使用后备依赖。pnpFallbackMode 决定了谁可以使用回溯依赖关系。默认情况下,只有根项目的依赖关系才允许使用回溯依赖关系,而工作区的依赖关系不允许这样做。使用 pnpFallbackMode: all 根项目和工作区的依赖都可以依赖回退依赖。而有了 pnpFallbackMode: none - 后备依赖根本不允许使用。

松散模式对于迁移到Yarn 2 PnP是很有用的,因为JavaScript生态系统中的一些包严重依赖于它们可以访问提升到顶层的包。node_modules. 虽然他们依靠的是不应该的事实,但在松散的PnP模式下,Yarn只会发出警告并让这些包工作,而不是抛出访问违规错误。

松散模式是老 node_modules 和更新的PnP安装方案,意在更容易迁移到PnP。

© www.soinside.com 2019 - 2024. All rights reserved.