包管理后续部分
pnpm做了什么
当你使用npm或者Yarn的时候,如果你有100个项目,并且所有项目都有一个相同的依赖包,那么在硬盘上就需要保存100份该相同依赖包的脚本
如果使用pnpm,依赖包就将被存放在一个统一的位置
所以:
如果对同一依赖包使用相同的版本,那么磁盘上只有这个依赖包的一份文件
如果对同一依赖包需要使用不同的版本,则仅有版本之间不同的文件会被存储起来
如果所有的 文件都被保存在硬盘上的统一位置
那么安装软件包的时候,所有的文件都会硬链接到此位置,不会占用额外的硬盘空间
可以帮助我们在项目之间更方便的共享相同版本的依赖包
pnpm创建非扁平的node_modules目录
在npm和yarn安装的时候就是扁平化的(对应的依赖全都在node_modules下,和自己同级)
当使用npm或者yarn classic安装依赖包时,所有软件包都将被提升到node_modules的根目录下
结果就是源码可以访问不属于当前项目所设定的依赖包
pnpm的存储store
在pnpm7.0之前,统一的存储位置是~/.pnpm-score(存储依赖包的目录)中的
自己找这个目录不一定好找,可以运行这个命令获取这个目录:获取当前活跃的store目录
pnpm store path
另外一个非常重要的store命令是prune(修剪):从store中删除当前未被引用的包来释放store的空间
磊哥可爱捏: