一、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
)。