pnpm
大约 2 分钟
前言
pnpm - 速度快、节省磁盘空间的软件包管理器。
pnpm优点
- 快速——npm是同类工具速度的将近两倍
 - 高效——node_modules 中的所有文件均克隆或硬链接自单一存储位置
 - 支持单仓库——pnpm 内置了对单个源码仓库中包含多个软件包的支持
 - 权限严格——pnpm 创建的 node_modules 默认并非扁平结构,因此代码无法对任意软件包进行访问
 - 集中存储
 - 依赖隔离
 - monorepo
 
pnpm 相比较于 yarn/npm 这两个常用的包管理工具在性能上也有了极大的提升,根据目前官方提供的 benchmark 数据可以看出在一些综合场景下比 npm/yarn 快了大概两倍。
常用命令
- 安装 pnpm:
npm i pnpm -g - 查看 pnpm 版本信息:
pnpm -v - 升级pnpm版本:
pnpm add -g pnpm to update - 设置pnpm镜像源: 
- 查看源:
pnpm config get registry - 切换淘宝源:
pnpm config set registry https://registry.npmmirror.com 
 - 查看源:
 - 安装包所有依赖:
pnpm installorpnpm i - 安装包: 
pnpm add <packageName> [-S]pnpm add <packageName> -Dpnpm add <packageName> -g全局安装
 - 移出包: 
pnpm remove <packageName>pnpm remove <packageName> -g移除全局包
 - 更新 
pnpm up更新项目中所有依赖pnpm update <packageName>更新项目中的依赖包pnpm upgrade <packageName> -g更新全局包
 - 运行项目:
pnpm run xxx 
查看 pnpm 下载包的公共仓库
pnpm store path
修改 pnpm 下载包的公共仓库
添加环境变量方式
# 在mac上示例
export PNPM_STORE_PATH=/home/user/my-pnpm-store
命令行设置
# 语法格式
pnpm config set store-dir <new path> 
# 语法示例(在D盘上的.pnpm-store文件夹)
pnpm config set store-dir D:/.pnpm-store
常见报错
The following dependencies are imported but could not be resolved
解决办法:
方法一
- 在根目录创建 .npmrc 文件:
 - 在根目录创建 .npmrc 文件,内容为:
shamefully-hoist = true - 删除
node_modules,再执行pnpm install 
方法二:
 执行pnpm i --shamefully-hoist
