3.4 KiB
3.4 KiB
name, description
| name | description |
|---|---|
| pnpm-cli-commands | 用于包管理、运行脚本及工作区操作的核心 pnpm 命令 |
pnpm CLI 命令
pnpm 提供了一套功能全面的 CLI,用于包管理,其命令与 npm/yarn 类似,但拥有独特的功能。
安装命令
安装所有依赖
pnpm install
# 或
pnpm i
添加依赖
# 生产依赖
pnpm add <pkg>
# 开发依赖
pnpm add -D <pkg>
pnpm add --save-dev <pkg>
# 可选依赖
pnpm add -O <pkg>
# 全局包
pnpm add -g <pkg>
# 指定版本
pnpm add <pkg>@<version>
pnpm add <pkg>@next
pnpm add <pkg>@^1.0.0
移除依赖
pnpm remove <pkg>
pnpm rm <pkg>
pnpm uninstall <pkg>
pnpm un <pkg>
更新依赖
# 更新全部
pnpm update
pnpm up
# 更新指定包
pnpm update <pkg>
# 更新到最新版(忽略 semver)
pnpm update --latest
pnpm up -L
# 交互式更新
pnpm update --interactive
pnpm up -i
脚本命令
运行脚本
pnpm run <script>
# 或简写
pnpm <script>
# 向脚本传递参数
pnpm run build -- --watch
# 若脚本存在则运行(缺失时不报错)
pnpm run --if-present build
执行二进制文件
# 运行本地二进制文件
pnpm exec <command>
# 示例
pnpm exec eslint .
dlx —— 无需安装直接运行
# 类似于 npx,但专为 pnpm 设计
pnpm dlx <pkg>
# 示例
pnpm dlx create-vite my-app
pnpm dlx degit user/repo my-project
工作区命令
在所有包中运行
# 在所有工作区包中运行脚本
pnpm -r run <script>
pnpm --recursive run <script>
# 在指定包中运行
pnpm --filter <pattern> run <script>
# 示例
pnpm --filter "./packages/**" run build
pnpm --filter "!./packages/internal/**" run test
pnpm --filter "@myorg/*" run lint
过滤模式
# 按包名过滤
pnpm --filter <pkg-name> <command>
pnpm --filter "@scope/pkg" build
# 按目录过滤
pnpm --filter "./packages/core" test
# 某个包的依赖项
pnpm --filter "...@scope/app" build
# 某个包的上游依赖方
pnpm --filter "@scope/core..." test
# 自指定提交/分支以来发生变更的包
pnpm --filter "...[origin/main]" build
其他实用命令
链接包
# 链接全局包
pnpm link --global
pnpm link -g
# 使用已链接的包
pnpm link --global <pkg>
打补丁
# 为某个包创建补丁
pnpm patch <pkg>@<version>
# 编辑后提交补丁
pnpm patch-commit <path>
# 移除补丁
pnpm patch-remove <pkg>
存储管理
# 显示存储路径
pnpm store path
# 移除未引用的包
pnpm store prune
# 检查存储完整性
pnpm store status
其他命令
# 干净安装(类似 npm ci)
pnpm install --frozen-lockfile
# 列出已安装的包
pnpm list
pnpm ls
# 为什么安装了这个包?
pnpm why <pkg>
# 过时的包
pnpm outdated
# 安全漏洞审计
pnpm audit
# 重新构建原生模块
pnpm rebuild
# 从 npm/yarn lock 文件导入
pnpm import
# 创建 tarball
pnpm pack
# 发布包
pnpm publish
常用标志
# 忽略脚本
pnpm install --ignore-scripts
# 优先使用离线缓存
pnpm install --prefer-offline
# 严格的 peer 依赖检查
pnpm install --strict-peer-dependencies
# 仅安装生产依赖
pnpm install --prod
pnpm install -P
# 不安装可选依赖
pnpm install --no-optional