#独家
pnpm安装的依赖,同时npm也安装了依赖,他会找哪个呢?

2023-05-08 0 3,644

就比如我项目原来是npm的,然后安装了一堆依赖,此时nodemodules底下会有express依赖

此时我换成了pnpm安装,然后他会生成一个.pnpm目录,这时候他也会有express依赖,只不过是软硬连接,这时候我如果找express依赖的话,找的是哪个呢

你指的是幽灵依赖 —— 你没直接安装它、而是你安装的某个依赖的依赖这种吗?

如果是的话,那你在项目里 import 进来的是 npm 安装的那个版本。

P.S. 混用包管理工具是大忌,你这就是给自己埋雷呢……

幽灵依赖 pnpm 你压根就导入不进来,只能是 npm 的那个;显式依赖哪个后安装的就是哪个,pnpm 在后那硬链接就覆盖 npm 的了(毕竟是硬链接,具体表现可能还跟操作系统和文件系统有关,macOS 下是覆盖了,手头没 Windows 不太确定)。

就问题而言,会使用 pnpm 安装的 express。但其它依赖需要分依赖来源讨论。

比如项目依赖了 x,先 npm install x,再 pnpm install。这时 pnpm 会重建 node_modules 目录,把项目相关依赖都重新链接到 .pnpm 下的依赖文件夹。由于 npm install 时会提升依赖,所以 npm 安装 x 时提升的依赖如 y 你依旧能访问到。也就是说,x 是 pnpm 安装的 x,但 y 是 npm 安装的 y。

./node_modules/
    .pnpm/
    x -> link to .pnpm/x
    y -> npm installed

混用依赖管理器是不好的实践。如果涉及在多个项目使用不同的管理器,可以尝试用 @antfu/ni 或 corepack。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 pnpm安装的依赖,同时npm也安装了依赖,他会找哪个呢? https://www.jkxiazai.com/1703.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务