更新
本页说明每种运行方式该怎么更新 pi-webapp、稳定版和体验版分别是什么意思,以及更新后页面没有回来时怎么恢复。
更新会重启服务,这会结束正在运行的会话和终端。开始之前,请让所有会话跑完(或先暂停),关闭终端,并保存、关闭所有打开的图。
我该用哪种更新方式?
| 你的运行方式 | 更新方式 |
|---|---|
npx pi-webapp 或全局的 pi-webapp 命令 | Pi 设置 → 通用设置 → 应用更新(见下文) |
| 桌面应用 | 业务包:同一个设置页面。应用外壳本身:手动安装。 |
Pi 终端里的 /web | pi update npm:pi-webapp,然后重启 Pi |
| 源码目录 | git pull、npm ci、npm run build,再重启 |
在页面里更新(Web 启动器和桌面版)
- 打开 Pi 设置 → 通用设置。在 应用更新 下,你会看到 当前版本 和 目标版本。侧栏底部 下载升级 上出现的小圆点,也表示发现了更新的版本。
- 想刷新目标版本,就点 检查更新。
- 点 升级并重启。状态会依次显示安装、重启,页面会在同一个地址重新连上,因为新服务沿用了旧的端口和访问令牌。

这个操作会做什么、不会做什么:
- 它会把一个经过校验的版本下载到 Pi 的数据目录(
pi-web/releases/)并启动。它不会改动你的 npm 全局安装,所以npm ls -g pi-webapp显示的版本可能比正在运行的更旧。以设置里显示的运行版本为准。 - 以后启动
npx pi-webapp或pi-webapp,会自动选用更新后的版本。 - 每个版本都带着它测试过的 Pi 运行时版本,所以更新应用也可能更新服务所用的 Pi 版本。你全局安装的
pi(如果有)不会被改动。 - 如果新版本启动失败,启动器会尝试重新启动之前的版本。这能恢复服务,但恢复不了当时正在运行的工作。
- 如果在检查与安装之间目标发生了变化,或者你改了偏好,安装会停下并要求重新检查,而不是悄悄装上别的版本。
如果页面一两分钟后还没回来,见排错。
稳定版还是体验版
在 更新偏好 下选择:
- 稳定版(推荐):跟随发布在 npm
latest标签下的版本。 - 体验版(包含 alpha):跟随
latest和alpha标签里较新的那个。体验版包含仍在验证的新功能,可能不稳定。如果一个稳定版取代了较旧的 alpha,它会被当作更新提供;较旧的 alpha 不会被当成“升级”提供。
这个偏好保存在 Pi 的数据目录里,所以重启、刷新页面和换浏览器都不会丢。修改它不会安装任何东西,也不会重启任何东西:先看一下目标版本,再点 升级并重启。
如果你正在运行的 alpha 比最新稳定版还新,而你选了 稳定版,按钮会变成 切换到稳定版并重启。这会安装一个更旧的版本,请先备份重要数据。如果数据格式不同,切换会被阻止,也不会自动转换数据。
这个偏好控制的是服务所运行的 npm 包,与桌面应用自己的更新通道是分开的。
从 Pi 终端更新(/web)
这种模式下 pi-webapp 能显示自己的版本,但不能自行重启。请先退出 Pi,再在普通 shell 里更新扩展:
bash
pi update npm:pi-webapp再次启动 pi,输入 /web。请使用你安装时用的来源(用 pi list 查看)。单独的 pi update 更新的是 Pi 本身,不是扩展,所以要指明包名。Pi 自己的版本和扩展的版本是相互独立的。
更新源码目录
bash
git pull
npm ci
npm run build
npm run stop
npm run start刷新旧页面并不会替换后端代码:必须重启服务。用 pi -e . 时,重新构建后,在 Pi 里输入 /reload,再输入 /web。
桌面版说明
桌面应用有两样东西要分别更新:外壳(安装好的应用)和业务包(它所运行的 pi-webapp 版本)。“关于”对话框(pi → 关于 pi)显示外壳版本和桌面构建号,设置页显示正在运行的包。外壳的更新见桌面版,那里还说明了复用已运行服务的桌面版如何获得体验版更新。