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 install
orpnpm i
- 安装包:
pnpm add <packageName> [-S]
pnpm add <packageName> -D
pnpm 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