阅读视图

发现新文章,点击刷新页面。

记peerDependency引发的多副本问题

你现在有一个包含许多软件包的单体仓库。你的公用组件包引入了一个第三方组件包(假设是antd),你的两个客户端包和也引入了antd,当然也引入了公用组件包。你在中使用了第三方组件包中的一个Context的Provider(假设你在做一个多端的React应用),你把代码在包下的这个Context的Consumer嵌套在这个Provider的下边。正常来讲,这个Consumer应当能够读到Provider提供的Context值。bug出现了,这个Provider并没能读到Context的值,就好像它的父级根本没有Provider一样。然而同样的代码在中就跑的通,这是为什么呢? 今天这篇文章将会讲述一件由pnpm的依赖解析机制引发的问题。pnpm解决了安装npm包的许多痛点,然而其一些安装策略有可能会导致一些奇怪的行为,并且一时间很难发现。如果你还不知道pnpm是啥,

来源

❌