项目文件夹

文件
2026-07-13 21:35:53 +08:00

230 行
3.4 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
name: pnpm-cli-commands
description: 用于包管理、运行脚本及工作区操作的核心 pnpm 命令
---
# pnpm CLI 命令
pnpm 提供了一套功能全面的 CLI,用于包管理,其命令与 npm/yarn 类似,但拥有独特的功能。
## 安装命令
### 安装所有依赖
```bash
pnpm install
# 或
pnpm i
```
### 添加依赖
```bash
# 生产依赖
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
```
### 移除依赖
```bash
pnpm remove <pkg>
pnpm rm <pkg>
pnpm uninstall <pkg>
pnpm un <pkg>
```
### 更新依赖
```bash
# 更新全部
pnpm update
pnpm up
# 更新指定包
pnpm update <pkg>
# 更新到最新版(忽略 semver
pnpm update --latest
pnpm up -L
# 交互式更新
pnpm update --interactive
pnpm up -i
```
## 脚本命令
### 运行脚本
```bash
pnpm run <script>
# 或简写
pnpm <script>
# 向脚本传递参数
pnpm run build -- --watch
# 若脚本存在则运行(缺失时不报错)
pnpm run --if-present build
```
### 执行二进制文件
```bash
# 运行本地二进制文件
pnpm exec <command>
# 示例
pnpm exec eslint .
```
### dlx —— 无需安装直接运行
```bash
# 类似于 npx,但专为 pnpm 设计
pnpm dlx <pkg>
# 示例
pnpm dlx create-vite my-app
pnpm dlx degit user/repo my-project
```
## 工作区命令
### 在所有包中运行
```bash
# 在所有工作区包中运行脚本
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
```
### 过滤模式
```bash
# 按包名过滤
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
```
## 其他实用命令
### 链接包
```bash
# 链接全局包
pnpm link --global
pnpm link -g
# 使用已链接的包
pnpm link --global <pkg>
```
### 打补丁
```bash
# 为某个包创建补丁
pnpm patch <pkg>@<version>
# 编辑后提交补丁
pnpm patch-commit <path>
# 移除补丁
pnpm patch-remove <pkg>
```
### 存储管理
```bash
# 显示存储路径
pnpm store path
# 移除未引用的包
pnpm store prune
# 检查存储完整性
pnpm store status
```
### 其他命令
```bash
# 干净安装(类似 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
```
## 常用标志
```bash
# 忽略脚本
pnpm install --ignore-scripts
# 优先使用离线缓存
pnpm install --prefer-offline
# 严格的 peer 依赖检查
pnpm install --strict-peer-dependencies
# 仅安装生产依赖
pnpm install --prod
pnpm install -P
# 不安装可选依赖
pnpm install --no-optional
```
<!--
参考来源:
- https://pnpm.io/cli/install
- https://pnpm.io/cli/add
- https://pnpm.io/cli/run
- https://pnpm.io/filtering
-->