在松散模式下,Yarn 2 不会安装任何新的依赖项,它只会添加回退解决方案。后备池是一组可供所有依赖项使用的解决方案,它是存储在属性.pnp.js
文件中的数据结构。fallbackPool
您的所有依赖项都可以访问本应提升到根node_modules
文件夹的依赖项。Yarn 2 通过node_modules
在内存中运行安装策略并将依赖项列表提升到根node_modules
文件夹来确定这一点。
请注意,与 密切相关的配置选项pnpMode: loose
是一个pnpFallbackMode
选项。pnpFallbackMode
确定允许谁使用回退依赖项。默认情况下,只允许根项目的依赖项使用回退依赖项,不允许使用工作区依赖项。根项目和pnpFallbackMode: all
工作区依赖项都可以依赖回退依赖项。pnpFallbackMode: none
并且根本不允许使用with -fallback 依赖项。
松散模式对于迁移到 Yarn 2 PnP 很有用,因为 JavaScript 生态系统中的一些包严重依赖于它们可以访问提升到顶层的包这一事实node_modules
。尽管他们依赖于他们不应该依赖的事实,但在松散的 PnP 模式下,Yarn 只会发出警告并让这些包工作,而不是抛出访问冲突错误。
松散模式是node_modules
新旧 PnP 安装方案之间的混合,意味着更容易迁移到 PnP。