Skip to content

更新 ​

本页说明每种运行方式该怎么更新 pi-webapp、稳定版和体验版分别是什么意思,以及更新后页面没有回来时怎么恢复。

更新会重启服务,这会结束正在运行的会话和终端。开始之前,请让所有会话跑完(或先暂停),关闭终端,并保存、关闭所有打开的图。

我该用哪种更新方式? ​

你的运行方式更新方式
npx pi-webapp 或全局的 pi-webapp 命令Pi 设置 → 通用设置 → 应用更新(见下文)
桌面应用业务包:同一个设置页面。应用外壳本身:手动安装。
Pi 终端里的 /webpi update npm:pi-webapp,然后重启 Pi
源码目录git pull、npm ci、npm run build,再重启

在页面里更新(Web 启动器和桌面版) ​

  1. 打开 Pi 设置 → 通用设置。在 应用更新 下,你会看到 当前版本 和 目标版本。侧栏底部 下载升级 上出现的小圆点,也表示发现了更新的版本。
  2. 想刷新目标版本,就点 检查更新。
  3. 点 升级并重启。状态会依次显示安装、重启,页面会在同一个地址重新连上,因为新服务沿用了旧的端口和访问令牌。

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)显示外壳版本和桌面构建号,设置页显示正在运行的包。外壳的更新见桌面版,那里还说明了复用已运行服务的桌面版如何获得体验版更新。

这些页面描述本仓库的源码。请在 Pi 设置 → 通用设置 中查看你正在运行的版本。