我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

node的包管理器,又又又出现一个新的成员,叫做pnpm。而且这款新的pnpm还很心气儿足,不与原来的老前辈为伍。那么,本文里面就简要的了解一下这个“快速的,节省磁盘空间的包管理工具pNPm”。

苏南大叔:新的node包管理工具pnpm,如何安装使用? - pnpm
新的node包管理工具pnpm,如何安装使用?(图5-1)

苏南大叔的程序如此灵动博客,记录苏南大叔和计算机代码的故事。测试环境:win10pnpm@node@16.14.2

有什么先进之处

官方网站:

苏南大叔:新的node包管理工具pnpm,如何安装使用? - pnpm官网
新的node包管理工具pnpm,如何安装使用?(图5-2)

据说先进之处在于,可以大幅度节省磁盘空间。下面的是官网的原话,大家自己体会一下:

使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:
如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。那么 pnpm update 时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。
所有文件都会存储在硬盘上的某一位置。 当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。> > 这允许你跨项目地共享同一版本的依赖。
因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!

如何安装

通过npm全局安装pnpm,是最好的选择。(安装完毕,请重启命令行生效)

npm i pnpm -g

当然,鉴于pnpm是来踢场子,替代npm的。所以,官方也提供了其他的安装渠道,有需要的可以自己去查看:

命令对比

就和最常用的npm做个命令对比吧。

npm 命令pnpm 等效
npm installpnpm install
npm i <pkg>pnpm add <pkg>
npm run <cmd>pnpm <cmd>
苏南大叔推断,pnpm install的包都是全局的,否则也谈不上“节省空间”的说法了。是不是全局的,官网也没说,大家自行体会吧。

目前,node的包管理器,一共有以下几种:

  • 官方出品的npm(安装几年前的package.json程序(安装老版本依赖)的时候,经常出错)。
  • 国人出品的cnpm(据说可以解决速度慢的问题,偶尔使用)。
  • 备受推崇的yarnnpm安装识别出错的话,就试试yarn吧。好用,推荐!)。
  • 本文描述的pnpm(据说可以大大节省磁盘空间)。

数据存在哪里

pnpm i的界面上有提示,安装位置是:

C:\Users\sunan\AppData\Local\pnpm\store\v3

苏南大叔:新的node包管理工具pnpm,如何安装使用? - pnpm-store-path
新的node包管理工具pnpm,如何安装使用?(图5-3)

注意是默认安装在了用户目录下面的AppData目录下面,好像npm的全局包也在这边。这个路径还可以通过下面的命令【管理员模式】获得:

pnpm store path

非管理员模式下,会得到一个错误的路径...

项目下还存在node_modules

项目文件夹下面还是存在着那个很莫名的node_modules文件夹,只不过里面看上去有很多的快捷方式。相比较npm i的结果,确实体积小了一点?【保持疑问】

苏南大叔:新的node包管理工具pnpm,如何安装使用? - pnpm-node-modules
新的node包管理工具pnpm,如何安装使用?(图5-4)

这里有个命令,据说可以净化没有用到的文件。

pnpm store prune

苏南大叔:新的node包管理工具pnpm,如何安装使用? - pnpm-store-prune
新的node包管理工具pnpm,如何安装使用?(图5-5)

结束语

每一个新的包管理工具出来的时候,大家都会一窝蜂跟风,最后还是老老实实的回归npm。不知道这个新的pnpm的生命力会有多久。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   npm