pnpm安装及使用(切换版本)

15,637 阅读2分钟

一、什么是pnpm

快速的,节省磁盘空间的包管理工具。

二、pnpm的特点

1、快速

pnpm比其他包管理器快2倍。

2、高效

node_modules 中的文件为复制或链接自特定的内容寻址存储库。

3、支持monorepos

pnpm内置支持单仓多包。

4、严格

pnpm 默认创建了一个非平铺的 node_modules,因此代码无法访问任意包。

三、pnpm到底做了什么

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

四、pnpm创建非平铺的node_modules目录

1、npm和yarn
  • 当使用npm或yarn安装依赖包时,所以软件包都被提升到node_modules的根目录下;
  • 其结果是,源码可以访问本不属于当前项目所设定的依赖包。
2、pnpm
  • 使用pnpm安装依赖包时,只有安装的那个包会在node_modules的根目录下,并且以软链接(符号链接)的方式存在;
  • 在node_modules的根目录下同时还会有一个.pnpm文件,里面保存的是所有包的硬链接;
  • 其结果是,源码不可以访问本不属于当前项目所设定的依赖包。
  • 五、使用

1.官网: https://pnpm.js.org/installation/
2.使用

版本切换

  pnpm env use --global 14 //(使用偶数版本,奇数版本为不稳定版本)

常见命令


pnpm install 包名  //

pnpm i 包名

pnpm add 包名    // -S  默认写入dependencies

pnpm add -D    // -D devDependencies

pnpm add -g    // 全局安装

pnpm remove 包名 //移除

pnpm up                //更新所有依赖项

pnpm upgrade 包        //更新包

pnpm upgrade 包 --global   //更新全局包

在系统上禁止使用脚本解决方法

# 以管理员身份运行power shell
set-executionpolicy remotesigned

快速删除node_modules依赖包

 npm i rimraf  // 安装删除快捷依赖包 
 rimraf node_modules // 执行删除