包管理工具详解(二)完 --pnpm、硬链接、软连接、pnpm原理

402 阅读2分钟

1. 什么是pnpm

1.1 什么是pnpm呢?我们来看一下官方的解释:

  • pnpm:我们可以理解成是performant npm缩写(高性能的npm);
  • 官网中文文档 image.png

1.2 硬连接和软连接的概念

  1. 硬链接(hard link):
  • 硬链接(英语:hard link)是电脑文件系统中的多个文件平等地共享同一个文件存储单元
  • 删除一个文件名字后,还可以用其它名字继续访问该文件;
  1. 符号链接(软链接soft link、Symbolic link):
  • 符号链接(软链接、Symbolic link)是一类特殊的文件
  • 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用;
  • 硬连接和软连接在操作系统中的抽象 image.png 3.硬链接和软连接的演练

image.png

  • 文件的拷贝 copy abc.js abc_copy123.js

image.png

  • 硬链接

image.png 创立硬链接报错

image.png 添加cmd /c

实现效果 project5.gif

  • 软连接:快捷方式,指向原来的文件。

image.png 点击所在位置,会找到原来的文件,所在的位置。 project6.gif

2. pnpm到底做了什么呢?

  1. 当使用 npm 或 Yarn 时,如果你有100个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本
  2. 如果是使用 pnpm,依赖包将被 存放在一个统一的位置,因此:
  • 如果你对同一依赖包使用相同的版本,那么磁盘上只有这个依赖包的一份文件
  • 如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来
  • 所有文件都保存在硬盘上的统一的位置:
    • 当安装软件包时, 其包含的所有文件都会硬链接到此位置,而不会占用 额外的硬盘空间;
    • 这让你可以在项目之间方便地共享相同版本的 依赖包;

3. pnpm创建非扁平的 node_modules 目录

  1. 当使用 npm 或 Yarn Classic 安装依赖包时,所有软件包都将被提升到 node_modules 的 根目录下。
  • 其结果是,源码可以访问 本不属于当前项目所设定的依赖包;

image.png

  • 链接过程思路 image.png

4. 安装和使用

1.安装

 npm install pnpm -g
  1. 以下 是一个与 npm 等价命令的对照表,帮助你快速入门: image.png

  2. pnpm的存储store

image.png