一、pnpm -F mock-server start
js
// 跟目录下执行如下命令
pnpm -F mock-server start
pnpm -F mock-server start 里的 -F 是 --filter 的简写,意思是:只在名为 mock-server 的工作区(package)中执行命令。
🔍 分解一下这条命令:
r
pnpm -F mock-server start
相当于:
css
pnpm --filter mock-server start
🧠 它的作用是:
在 monorepo 项目中,你可能有多个包(比如 frontend、backend、mock-server 等)。pnpm --filter 允许你只对某个特定的包执行命令。
📌 举例:
假设你有这样的 pnpm workspace:
vbscript
root/
├── packages/
│ ├── frontend/
│ ├── backend/
│ └── mock-server/
如果你在根目录运行:
r
pnpm -F mock-server start
PNPM 会跳过 frontend、backend,只进入 mock-server/ 目录,执行这个包的 start 命令(定义在它自己的 package.json 中的 "scripts" 部分)。
🧩 其他常见的 --filter 用法:
| 命令 | 作用 |
|---|---|
pnpm -F frontend install |
只在 frontend 包中安装依赖 |
pnpm -F "mock-*" build |
对所有以 mock- 开头的包执行 build |
pnpm -F ./packages/backend test |
使用路径过滤执行 backend 的 test |
✅ 总结:
| 项 | 值 |
|---|---|
-F |
是 --filter 的简写 |
| 作用 | 指定只对某个工作区包执行命令 |
| 使用场景 | Monorepo 多包管理下的精准操作 |
如果你不在用 monorepo,而这个命令出现在你项目里,那就可能是你项目结构中引入了多个 package(例如使用了 pnpm-workspace.yaml)。