pnpm 节省磁盘空间的软件包管理器 - AI研究社

pnpm 节省磁盘空间的软件包管理器

pnpm一种提升安装速度、节约磁盘空间的高性能软件包管理器,pnpm 比 npm 快了近 2 倍,node_modules 中的所有文件均克隆或硬链接自单一存储位置,pnpm 内置了对单个源码仓库中包含多个软件包的支持,pnpm 创建的 node_modules 默认并非扁平结构。

pnpm 节省磁盘空间的软件包管理器 - AI研究社

使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。

而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中。

如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。

例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。

那么 pnpm update 时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。

所有文件都会存储在硬盘上的某一位置。

当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。

这允许你跨项目地共享同一版本的依赖。

因此,您在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!pnpm 分三个阶段执行安装:1,依赖解析,仓库中没有的依赖都被识别并获取到仓库。

2,目录结构计算,node_modules 目录结构是根据依赖计算出来的。

3,链接依赖项,所有以前安装过的依赖项都会直接从仓库中获取并链接到 node_modules。

这种方法比传统的三阶段安装过程(解析、获取和将所有依赖项写入node_modules)快得多。

使用 npm 或 Yarn Classic 安装依赖项时,所有的包都被提升到模块目录的根目录。

这样就导致了一个问题,源码可以直接访问和修改依赖,而不是作为只读的项目依赖。

默认情况下,pnpm 使用符号链接将项目的直接依赖项添加到模块目录的根目录中。

本文地址 https://www.aiyanshe.com/site/cn_pnpm 转载请注明,建议用PC/手机浏览器(Edge/Chrome/Firefox等)打开。
大家在看的