pnpm的使用

125 阅读2分钟

1.什么是pnpm

[pnpm] 全称是 “Performant NPM”,即高性能的 npm。具有速度快、节约磁盘空间、支持monorepo、安全性高的特点。

它结合软链接、硬链接与新的依赖组织方式,大大提升了包管理的效率。

同时解决了 “幻影依赖”(node_modules 一级目录下的依赖包,开发者可以直接使用,但依赖包没定义在 package.json 中) 的问题,让包管理更加规范,减少潜在风险发生的可能性。

2.软链接、硬链接

概念

软链接又称符号链接,它记录的是目标的path,和原文件不是一个文件。像window中的快捷方式,如果原文件被删了,快捷方式也没用了。

硬链接,与原文件同享同一个内存地址;当原文件被删时,硬链接不会被破坏。

创建方式

Linux系统下:

ln [选项] 源文件 目标文件
选项:
-s:建立软链接文件。如果不加 “-s” 选项,则建立[硬链接]文件;

Window系统下:

mklink [选项] 目标文件 源文件 选项:
/H:建立硬链接文件。如果不加 “/H” 选项,则建立[软链接]文件;

捕获.PNG 软链接有个箭头的标识

捕获.PNG

3.pnpm做了什么

捕获.PNG

使用 npm 时,依赖每次被不同的项目使用,都要重复安装一次。那么pnpm 有什么不同呢,

  • 所有依赖会被存储在内容可寻址的仓库中(pnpm store)。
  • 当我们项目软件包被被安装时,项目的 node_modules 下有 .pnpm 目录以打平结构管理每个版本包的源码内容。然后以硬链接方式指向仓库中的文件地址,而不会占用额外的磁盘空间;这使得我们可以跨项目地共享同一版本的依赖。
  • 项目 node_modules 下安装的包结构为树状,以软链接方式将内容指向 node_modules/.pnpm 中的包

使用

使用比较简单,使用npm安装后,用pnpm代替npm就可以了,命令与npm、yarn类似;具体参考官网

安装

npm install -g pnpm

常用命令

pnpm store path  // 获取包仓库地址
pnpm store prune  // 从store中删除当前未被引用的包来释放store的空间