pnpm-包管理工具

897 阅读3分钟

查看全局安装地址

npm config get prefix

显示全局安装的所有npm包及其路径

npm list -g --depth=0

查看全局pnpm包的当前版本

pnpm -v

全局安装pnpm到最新版本

npm update -g pnpm

pnpm包管理器的优点

  1. 使用 pnpm,依赖包将被 存放在一个统一的位置
  2. 对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。
  3. 所有文件都保存在硬盘上的统一的位置。

下载

npm install -g pnpm  // nodeJS下安装

npm install -g @pnpm/exe  // 没有nodeJS下安装

添加依赖 pnpm add

pnpm add <pkg>  // 保存到dependencies配置下,生产环境下所需的依赖项
or
pnpm add --save-prod <pkg>

pnpm add -D <pkg>  // 保存到devDependencies配置下,开发环境下所需的依赖项
or
pnpm add --save-dev <pkg>

pnpm add -o <pkg>  // 保存到optionalDependencies配置下,不影响项目运行,可有可无
or
pnpm add --save-optional <pkg>

pnpm add -g <pkg>  // 安装软件包到全局环境中
or
pnpm add --global <pkg>

pnpm add <pkg>@next  // 安装标记为next的版本

pnpm add <pkg>@3.0.0  //安装指定版本3.0.0

安装 pnpm install

别名:i

pnpm install --force  // 强制安装锁定的项目依赖包,重新创建依赖目录和配置

pnpm install -P  // 生产环境下,忽略安装其中的任何包,并删除其中已经安装的包
or
pnpm install --prod

pnpm install -D // 已经安装的情况下,才会安装或删除
or
pnpm install --dev

pnpm install --no-optional  // optionalDependencies没有安装

更新 pnpm update

别名:up,upgrade

pnpm up  // 更新package.json的所有依赖

pnpm up --latest  // 更新package.json的所有依赖,忽略package.json的忽略范围

pnpm up foo@2  //更新foo到v2以上的最新版

pnpm up -r  //并发地更新所有package.json子目录下的包,不包括node_moudules
or
pnpm up --recursive

pnpm up -L  // 忽略版本范围,使用最新标记指定的版本
or
pnpm up --latest

pnpm up -g  // 更新全局包
or
pnpm up --global

pnpm up -P  // 仅更新dependencies和optionalDependencies的包
or
pnpm up --prod

pnpm up -D // 仅更新devDependencies的包
or
pnpm up --dev

pnpm up --no-optional  //不更新optionalDependencies的包

pnpm up -i  //显示过时依赖并选择更新依赖项
or
pnpm up --interactive

pnpm remove

别名:rm,uninstall,un
pnpm remove命令则是用来删除指定的软件包。
node_modules目录下和package.json文件中删除

pnpm remove -r  // 删除每个workpack或子目录下的指定依赖包
or
pnpm remove --recursive

pnpm remove -g  // 全局环境中删除指定依赖包
or
pnpm remove --global

pnpm remove -D  // 删除devDependencies下的依赖包
or
pnpm remove --save-dev

pnpm remove -O  // 删除optionalDependencies下的依赖包
or
pnpm remove --save-optional

pnpm remove -P  // 删除dependencies下的依赖包
or
pnpm remove --save-prod

重构 pnpm rebuild

别名:rb

pnpm rebuild -r  // 单体仓库中的每个软件包执行重构
or
pnpm rebuild --recursive

pnpm import

pnpm import 命令用于通过其他软件包管理器的 lockfile 文件生成 pnpm-lock.yaml
支持的源文件:

  • package-lock.json
  • npm-shrinkwrap.json
  • yarn.lock

删除 pnpm prune

pnpm prune命令用于删除不需要的软件包。这个命令会根据参数来删除特定类型的依赖包。

pnpm prune --prod  // 删除devDependencies下的包

pnpm prune --no-optional  // 删除optionalDependencies下的包