为什么使用pnpm

原文链接: kuizuo.cn/为什么使用pnpm

pnpm文档

前言

在一个node项目中免不了node_modules依赖,假设项目A用的了Express依赖,同时项目B也用到了Express,并且两者所存放的位置不同,那么磁盘空间将会多出两份Express依赖,假设有100个项目,那么将会有有100倍的空间被浪费。这些空间还可以用磁盘空间来弥补,但是这100个项目如果都使用npm i去下载同样版本依赖,则是实实在在耗费网络资源去下载。

pnpm能解决以下两点问题

  • 包安装速度极快;
  • 磁盘空间利用非常高效。

而这些问题是一个node项目中常有的。相信此时的你都有点蠢蠢欲动了,而安装也很简单

安装

请查阅你的node版本与pnpm是否匹配 安装 | pnpm

npm install -g pnpm
复制代码

升级

pnpm add -g pnpm
复制代码

此时pnpm就已经安装完了,与yarn安装一样,都感觉没安装似的。

使用

pnpm命令几乎与npm一样,设置配置的方式也与npm相同,这里不妨尝试通过pnpm去下载express依赖,打开CMD,将路径改成你平时写js代码的地方,切记不要在C盘路径下,不然将会在C:\Users\{userDir}\.pnpm-store\v3去管理你的所有依赖,至于为什么后文会说,这里选择F盘进行安装,安装结果如下。

image-20220108040813223

不难看出,它将依赖存放至**F:\.pnpm-store\v3**下,但此时查看项目目录的node_modules文件夹

image-20220108041030618

发现expressmime-types的右侧带了回车符,而这两个文件夹实际上是window的硬链接,而读取的就是存放在F:\.pnpm-store\v3下的依赖。虽然查看node_modules属性会发现显示的空间貌似和原始的链接所占用的空间一样,但其实是同一个位置,官方中常用问题中也有介绍到 常见问题 | pnpm,所以真不用担心磁盘空间的问题。

这时候去查看 F:\.pnpm-store\v3\files 会发现都是一堆数字与字母命名的文件夹,而依赖都存放至这些杂乱无章的文件名之中。同时.pnpm-store是根据你所在驱动器(这里是F盘)下创建的,可以通过 pnpm store path查看,也就是上文为什么说不要在C盘路径(包括桌面)去安装依赖了,所以不用担心C盘空间会越来越小(如果你的代码是在C盘编写的话,那当我没说)。

最后

不过还是要提醒一句,即便pnpm能解决磁盘问题,但还是存在一定的兼容性,如果一个项目是用npm或者yarn进行构建的,使用pnpm是绝对免不了一些问题,小问题暂时想不到,大问题无法运行,所以请三思再考虑对已有项目是否尝试升级pnpm。

但我认为还是有必要尝试尝试下,不尝试,怎么能发现新大陆呢。

参考链接:关于现代包管理器的深度思考——为什么现在我更推荐 pnpm 而不是 npm/yarn? - 掘金 (juejin.cn)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值