进程
让 Joppa 按正确的顺序启动你的开发服务器和 Compose 容器,内置终端,支持在打开 Joppa 时启动,并在崩溃后重新启动。
进程 标签页(P)从 Joppa 运行项目:它的开发服务器(package.json 中的 dev 脚本)和基础设施(Docker Compose 服务)。每个进程都有自己的状态、端口和日志。

分析项目
第一次使用时,点击项目页面顶部(打开 旁边)或标签页中的 分析项目。在完成分析之前,Joppa 不会启动任何内容:域名会一直离线,直到你启动服务器。Joppa 会读取 package.json、workspaces 和 Docker Compose 文件,然后显示 Joppa 对项目的理解。在你确认之前不会启动任何内容。
| 列 | 内容 |
|---|---|
| 在「全部启动」中 | 取消勾选某个进程,它就不会和其他进程一起启动;但仍可单独启动 |
| 进程 | 进程名:web、api、postgres |
| 命令 | bun run dev,或 Compose 服务 |
| 端口 | 可修改 |
| 端口来源 | 脚本、配置、代码、.env、compose 或 默认 |
「等待 …」这一行表示依赖关系:开发服务器会等待它所依赖的 Compose 容器就绪。
如何确定端口
按以下顺序:
- 脚本中带默认值的变量(
${PORT:-3000}):Joppa 会为其赋值; - 脚本中的
--port、-p或PORT=; - 框架配置中的
port:(vite.config、astro.config); .env中的PORT;- 框架的默认端口:Vite 5173、Astro 4321、Next.js 和 Nuxt 3000、Angular 4200、Wrangler 8787。
对于其他 Node 服务器,Joppa 会在代码中查找端口(.listen(3000)、process.env.PORT ?? 3000)。
包管理器取自 lockfile,其次是 packageManager 字段,否则使用 npm。
Monorepo
当根目录的 dev 脚本一次启动多个应用(turbo、nx、--filter、--workspace)时,Joppa 会提供两个选项:
- 分别启动 · 每个应用独立的状态和日志(推荐);
- 保持原样:在同一个终端中运行根命令。
保存:仅限本机或供团队共享
- 保存 会把配置保存在 Joppa 中,仅限本机。
- 勾选 在仓库中写入 joppa.toml,供团队共享 即可共享:配置会写入项目根目录的
joppa.toml文件,供你提交。该文件存在时,以它为准。参见 joppa.toml 参考。
保存并启动 会立即启动所有进程。
启动和停止
- 项目页面顶部的 ▶ 全部启动 / ■ 全部停止,或使用 ⌘ K 命令面板(「全部启动:myproject」)。只要有一个进程在运行,按钮就会变为 ■ 全部停止。
- 每个进程都可以在标签页中或通过命令面板单独启动、停止或重启。
进程分为 应用(「dev」脚本)和 基础设施(Docker Compose,以 docker compose up -d --wait 启动:Joppa 会等待健康检查)两组。标题栏显示启动顺序以及正在运行的数量。
| 状态 | 含义 |
|---|---|
| 已停止 | — |
| 等待中 | 正在等待它所依赖的进程 |
| 启动中 | 已启动,但端口尚未响应 |
| 运行中 | 已启动(无端口的进程) |
| 在线 | 端口正在响应 |
| 失败 | 因错误而停止 |
| 在 Joppa 之外启动 | 该端口已由一个非 Joppa 启动的进程提供服务 |
| 无 Docker | Compose 服务,但没有正在运行的运行时 |
侧边栏中项目旁以及「项目」页面中项目卡片上的 ▶ 6/7 计数器显示「全部启动」中有多少个进程正在运行;窗口底部的状态栏汇总所有项目(6/7 个进程)。▶ 的颜色:全部运行时为绿色,有进程已停止、正在启动或在 Joppa 之外启动时为橙色,只有在某个进程失败时才为红色。将鼠标悬停在计数器上可查看详情。
如果端口被其他程序占用,Joppa 会提示你,并提供 释放端口。
停止时会先发送 SIGTERM,6 秒后再发送 SIGKILL。
打开 Joppa 时启动
开关 打开 Joppa 时启动 会在每次启动 Joppa 时对该项目执行一次「全部启动」。这是本机的偏好设置:永远不会写入 joppa.toml。
崩溃后重新启动
设置 崩溃后重新启动 决定 Joppa 对崩溃的开发服务器重新启动多少次:从不、1、2、3(默认)、5 或 10 次。
- 两次重新启动之间的等待时间逐次翻倍:1 秒、2 秒、4 秒、8 秒……最长 30 秒。
- 稳定运行 60 秒后,计数器归零。
- 超过次数后,Joppa 会放弃并显示:「重新启动 3 次后再次崩溃:Joppa 已放弃。」
- 你主动停止进程会取消待执行的重新启动。
此设置仅适用于开发服务器(不适用于 Compose 容器),并且只保存在本机。
内置终端
⌘ J 可在任意界面打开窗口底部的终端。收起时,它为每个进程显示一个状态方块;展开时,先是 全部 标签页,然后每个进程一个标签页。

- ⌕ 筛选:只显示包含某段文本的行。
- ● 跟随:始终停在最新的行。
- 清空、放大 / 缩小。
- 调整大小:拖动顶部边缘(或用键盘 ↑ / ↓);双击恢复默认高度。Joppa 会记住上次的高度。
Joppa 为每个进程保留最近 5,000 行。出错时,终端会提供合适的操作:释放端口 或 重新启动。