chore(locales): update dependency management references from Poetry to UV across multiple language README files

This commit is contained in:
Ivan 2026-07-04 17:16:43 -05:00
parent c96220e653
commit 2385cbfa93
No known key found for this signature in database
5 changed files with 70 additions and 70 deletions

View file

@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (mit Node-24-Laufzeit)
- `.whl`-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen
- i18n
- PNPM und Poetry fuer Abhaengigkeiten
- PNPM und UV fuer Abhaengigkeiten
> [!WARNING]
> MeshChatX garantiert keine Datenkompatibilitaet mit aelteren Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.
@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (aus `pyproject.toml`)
- Node.js `>=24` (aus `package.json`, Feld `engines`)
- pnpm `11.1.2` (aus `package.json`, Feld `packageManager`)
- Poetry (verwendet in `Taskfile.yml` und CI-Workflows)
- UV (verwendet in `Taskfile.yml` und CI-Workflows)
**Browser Versions Required:**
@ -180,13 +180,13 @@ Hinweise zu den Installationsbefehlen:
- `verify-store-integrity=true` ist auch in der projektweiten `pnpm-workspace.yaml` gesetzt; die explizite `pnpm config set`-Zeile haertet zusaetzlich die Benutzerkonfiguration.
- Lifecycle-Skripte (`preinstall`/`postinstall`) sind in pnpm v11+ standardmaessig blockiert. Nur die unter `allowBuilds` in `pnpm-workspace.yaml` aufgefuehrten Pakete duerfen Installationsskripte ausfuehren (aktuell `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` schlaegt frueh fehl, wenn `uv.lock` nicht mit `pyproject.toml` synchron ist; `uv sync --group dev` aufloest danach nur aus der Lockdatei.
- Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) Poetry mit `pip install "uv==0.11.15"` pinnen, passend zur CI-Version.
- Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) UV mit `pip install "uv==0.11.15"` pinnen, passend zur CI-Version.
Wenn Sie absichtlich Abhaengigkeiten aktualisieren wollen, fuehren Sie `pnpm update` / `uv lock` in einem dedizierten Commit aus und pruefen Sie das resultierende Lockdatei-Diff vor dem Push.
## Sandboxing (Linux)
Um das native `meshchatx`-Programm (Alias: `meshchat`) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie **Firejail** oder **Bubblewrap** (`bwrap`) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, Poetry, Hinweise zu USB-Seriell) finden Sie in:
Um das native `meshchatx`-Programm (Alias: `meshchat`) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie **Firejail** oder **Bubblewrap** (`bwrap`) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, UV, Hinweise zu USB-Seriell) finden Sie in:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@ -234,7 +234,7 @@ task dist:fe:rpm
## Container-Build (Wheel, AppImage, deb, rpm)
`Dockerfile.build` fuehrt die gleichen Schritte wie die CI aus (Poetry, pnpm, `task`, APT-Paketabhaengigkeiten). Ausgelegt auf **linux/amd64** (NodeSource amd64, Task amd64). Standardziel ist alles; per Build-Arg ueberschreibbar.
`Dockerfile.build` fuehrt die gleichen Schritte wie die CI aus (uv, pnpm, `task`, APT-Paketabhaengigkeiten). Ausgelegt auf **linux/amd64** (NodeSource amd64, Task amd64). Standardziel ist alles; per Build-Arg ueberschreibbar.
Werte fuer `MESHCHATX_BUILD_TARGETS`: `all` (Standard), `wheel` oder `electron` (AppImage + deb fuer x64 und arm64, RPM best-effort, kein wheel).
@ -333,16 +333,16 @@ task test:all
task build:all
```
`Makefile`-Kurzformen:
`Makefile`-Ziele sind duenne Wrapper, die an `task` delegieren (gleiche Befehle wie oben):
| Befehl | Beschreibung |
| -------------- | --------------------------------------------- |
| `make install` | pnpm- und Poetry-Abhaengigkeiten installieren |
| `make run` | MeshChatX ueber Poetry starten |
| `make build` | Frontend bauen |
| `make lint` | eslint und ruff ausfuehren |
| `make test` | Frontend- und Backend-Tests |
| `make clean` | Build-Artefakte und node_modules entfernen |
| Befehl | Delegiert an | Beschreibung |
| -------------- | --------------- | --------------------------------------------------------- |
| `make install` | `task install` | pnpm- und UV-Abhaengigkeiten installieren |
| `make run` | `task run` | MeshChatX ueber UV starten |
| `make build` | `task build` | Frontend- und Backend-Artefakte bauen |
| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff und basedpyright |
| `make test` | `task test:all` | Frontend- und Backend-Tests |
| `make clean` | `task clean` | Build-Artefakte und node_modules entfernen |
## Versionierung

View file

@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (runtime Node 24 incluso)
- Wheel `.whl` con web server e asset frontend integrati per piu opzioni di deploy
- i18n
- PNPM e Poetry per le dipendenze
- PNPM e UV per le dipendenze
> [!WARNING]
> MeshChatX non garantisce la compatibilita dei dati con le versioni precedenti di Reticulum MeshChat. Eseguire un backup prima della migrazione o dei test.
@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (da `pyproject.toml`)
- Node.js `>=24` (da `package.json`, campo `engines`)
- pnpm `11.1.2` (da `package.json`, campo `packageManager`)
- Poetry (utilizzato in `Taskfile.yml` e nei workflow CI)
- UV (utilizzato in `Taskfile.yml` e nei workflow CI)
**Browser Versions Required:**
@ -180,13 +180,13 @@ Note sui comandi di installazione:
- `verify-store-integrity=true` e' impostato anche nel `pnpm-workspace.yaml` del progetto; la riga esplicita `pnpm config set` rafforza inoltre la configurazione utente.
- Gli script di lifecycle (`preinstall`/`postinstall`) sono bloccati di default in pnpm v11+. Solo i pacchetti elencati in `allowBuilds` di `pnpm-workspace.yaml` possono eseguire script di installazione (attualmente `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` fallisce subito se `uv.lock` non e' allineato con `pyproject.toml`; `uv sync --group dev` risolve poi solo dal lockfile.
- Per un'installazione Poetry strettamente basata sul lockfile (senza refresh implicito), fissa Poetry con `pip install "uv==0.11.15"`, in linea con la CI.
- Per un'installazione UV strettamente basata sul lockfile (senza refresh implicito), fissa UV con `pip install "uv==0.11.15"`, in linea con la CI.
Se vuoi aggiornare intenzionalmente le dipendenze, esegui `pnpm update` / `uv lock` in un commit dedicato e rivedi il diff del lockfile prima del push.
## Esecuzione in sandbox (Linux)
Per eseguire il binario nativo `meshchatx` (alias: `meshchat`) con isolamento aggiuntivo del filesystem, puoi usare **Firejail** o **Bubblewrap** (`bwrap`) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, Poetry, note sulla seriale USB) sono in:
Per eseguire il binario nativo `meshchatx` (alias: `meshchat`) con isolamento aggiuntivo del filesystem, puoi usare **Firejail** o **Bubblewrap** (`bwrap`) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, UV, note sulla seriale USB) sono in:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@ -234,7 +234,7 @@ task dist:fe:rpm
## Build container (wheel, AppImage, deb, rpm)
`Dockerfile.build` esegue le stesse fasi usate in CI (Poetry, pnpm, `task`, dipendenze APT). Orientato a **linux/amd64** (tarball NodeSource amd64, Task amd64). Il target predefinito e completo; si puo sovrascrivere con un build-arg.
`Dockerfile.build` esegue le stesse fasi usate in CI (uv, pnpm, `task`, dipendenze APT). Orientato a **linux/amd64** (tarball NodeSource amd64, Task amd64). Il target predefinito e completo; si puo sovrascrivere con un build-arg.
Valori per `MESHCHATX_BUILD_TARGETS`: `all` (default), `wheel` o `electron` (AppImage + deb per x64 e arm64, RPM se possibile, senza wheel).
@ -333,16 +333,16 @@ task test:all
task build:all
```
Scorciatoie `Makefile`:
I target `Makefile` sono wrapper sottili che delegano a `task` (stessi comandi di sopra):
| Comando | Descrizione |
| -------------- | ----------------------------------------- |
| `make install` | Installa dipendenze pnpm e UV |
| `make run` | Esegue MeshChatX tramite UV |
| `make build` | Compila il frontend |
| `make lint` | Esegue eslint e ruff |
| `make test` | Test frontend e backend |
| `make clean` | Rimuove artefatti di build e node_modules |
| Comando | Delega a | Descrizione |
| -------------- | --------------- | ----------------------------------------------------- |
| `make install` | `task install` | Installa dipendenze pnpm e UV |
| `make run` | `task run` | Esegue MeshChatX tramite UV |
| `make build` | `task build` | Compila artefatti frontend e backend |
| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff e basedpyright |
| `make test` | `task test:all` | Test frontend e backend |
| `make clean` | `task clean` | Rimuove artefatti di build e node_modules |
## Versionamento

View file

@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x同梱 Node 24 ランタイム)
- Web サーバーと同梱フロントエンドを含む `.whl` によりデプロイの選択肢を拡張
- i18n
- 依存関係管理に PNPM と Poetry
- 依存関係管理に PNPM と UV
> [!WARNING]
> MeshChatX は旧バージョンの Reticulum MeshChat とのデータ互換性を保証しません。マイグレーションやテスト前にデータをバックアップしてください。
@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11``pyproject.toml` より)
- Node.js `>=24``package.json``engines`
- pnpm `11.1.2``package.json``packageManager`
- Poetry`Taskfile.yml` および CI ワークフローで使用)
- UV`Taskfile.yml` および CI ワークフローで使用)
**Browser Versions Required:**
@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` はプロジェクトの `pnpm-workspace.yaml` にも設定されています。上記の `pnpm config set` の行はユーザー設定側も明示的に固めるためのものです。
- pnpm v11 以降、ライフサイクルスクリプト (`preinstall`/`postinstall`) はデフォルトでブロックされます。インストールスクリプトを実行できるのは `pnpm-workspace.yaml``allowBuilds` に列挙されたパッケージ(現在 `electron``electron-winstaller``esbuild`)だけです。
- `uv lock --check``uv.lock``pyproject.toml` が同期していない場合に即時失敗します。その後の `uv sync --group dev` はロックファイルからのみ解決します。
- 厳密にロックファイルだけで Poetry をインストールしたい場合は、CI と揃えるために `pip install "uv==0.11.15"`Poetry バージョンを固定してください。
- 厳密にロックファイルだけで UV をインストールしたい場合は、CI と揃えるために `pip install "uv==0.11.15"`UV バージョンを固定してください。
意図的に依存を更新する場合は、`pnpm update` / `uv lock` を専用コミットで実行し、push 前にロックファイルの diff を必ず確認してください。
## サンドボックスで実行Linux
ネイティブの `meshchatx`(エイリアス: `meshchat`をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ **Firejail** または **Bubblewrap**`bwrap`を使えます。詳しい例pip/pipx、Poetry、USB シリアルの注意)は次を参照:
ネイティブの `meshchatx`(エイリアス: `meshchat`をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ **Firejail** または **Bubblewrap**`bwrap`を使えます。詳しい例pip/pipx、UV、USB シリアルの注意)は次を参照:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@ -234,7 +234,7 @@ task dist:fe:rpm
## コンテナビルドwheel、AppImage、deb、rpm
`Dockerfile.build` は CI と同じ手順(Poetry、pnpm、`task`、APT 依存)を実行します。**linux/amd64** 向けNodeSource の amd64 tarball、Task の amd64 バイナリ。デフォルトは全ターゲット。build-arg で上書き可能。
`Dockerfile.build` は CI と同じ手順(uv、pnpm、`task`、APT 依存)を実行します。**linux/amd64** 向けNodeSource の amd64 tarball、Task の amd64 バイナリ。デフォルトは全ターゲット。build-arg で上書き可能。
`MESHCHATX_BUILD_TARGETS` の値: `all`(既定)、`wheel`、または `electron`x64 / arm64 の AppImage + deb、RPM はベストエフォート、wheel なし)。
@ -333,16 +333,16 @@ task test:all
task build:all
```
`Makefile`ショートカット:
`Makefile`ターゲットは `task` に委譲する薄いラッパーです(上記と同じコマンド):
| コマンド | 説明 |
| -------------- | ------------------------------------ |
| `make install` | pnpm と UV の依存関係をインストール |
| `make run` | UV 経由で MeshChatX を実行 |
| `make build` | フロントエンドをビルド |
| `make lint` | eslint と ruff を実行 |
| `make test` | フロントエンドとバックエンドのテスト |
| `make clean` | ビルド成果物と node_modules を削除 |
| コマンド | 委譲先 | 説明 |
| -------------- | --------------- | ------------------------------------------------------ |
| `make install` | `task install` | pnpm と UV の依存関係をインストール |
| `make run` | `task run` | UV 経由で MeshChatX を実行 |
| `make build` | `task build` | フロントエンドとバックエンドの成果物をビルド |
| `make lint` | `task lint:all` | ESLint、vue-tsc、knip、Ruff、basedpyright |
| `make test` | `task test:all` | フロントエンドとバックエンドのテスト |
| `make clean` | `task clean` | ビルド成果物と node_modules を削除 |
## バージョン管理

View file

@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (встроенная среда Node 24)
- Колёса `.whl` с веб-сервером и встроенным фронтендом для разных сценариев развёртывания
- i18n
- PNPM и Poetry для зависимостей
- PNPM и UV для зависимостей
> [!WARNING]
> MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat. Сделайте резервную копию перед миграцией или тестированием.
@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (из `pyproject.toml`)
- Node.js `>=24` (из `package.json`, поле `engines`)
- pnpm `11.1.2` (из `package.json`, поле `packageManager`)
- Poetry (используется в `Taskfile.yml` и CI)
- UV (используется в `Taskfile.yml` и CI)
**Browser Versions Required:**
@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` уже задан в `pnpm-workspace.yaml` проекта; явный `pnpm config set` дополнительно ужесточает пользовательскую конфигурацию.
- Lifecycle-скрипты (`preinstall`/`postinstall`) по умолчанию заблокированы в pnpm v11+. Скрипты установки могут запускать только пакеты из `allowBuilds` в `pnpm-workspace.yaml` (сейчас `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` сразу падает, если `uv.lock` не синхронизирован с `pyproject.toml`; затем `uv sync --group dev` ставит зависимости только из lock-файла.
- Для строгой установки Poetry только из lock-файла зафиксируйте версию Poetry через `pip install "uv==0.11.15"`, как это делает CI.
- Для строгой установки только из lock-файла зафиксируйте UV через `pip install "uv==0.11.15"`, как это делает CI.
Если вы намеренно хотите обновить зависимости, выполните `pnpm update` / `uv lock` отдельным коммитом и проверьте diff lock-файлов до пуша.
## Запуск в песочнице (Linux)
Чтобы запускать нативный `meshchatx` (псевдоним: `meshchat`) с дополнительной изоляцией файловой системы, можно использовать **Firejail** или **Bubblewrap** (`bwrap`), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, USB-serial) в:
Чтобы запускать нативный `meshchatx` (псевдоним: `meshchat`) с дополнительной изоляцией файловой системы, можно использовать **Firejail** или **Bubblewrap** (`bwrap`), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, UV, USB-serial) в:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@ -234,7 +234,7 @@ task dist:fe:rpm
## Сборка в контейнере (wheel, AppImage, deb, rpm)
`Dockerfile.build` выполняет те же шаги, что и CI (Poetry, pnpm, `task`, пакетные зависимости APT). Ориентирован на **linux/amd64** (NodeSource amd64, Task amd64). Цель по умолчанию: всё; её можно переопределить build-arg.
`Dockerfile.build` выполняет те же шаги, что и CI (uv, pnpm, `task`, пакетные зависимости APT). Ориентирован на **linux/amd64** (NodeSource amd64, Task amd64). Цель по умолчанию: всё; её можно переопределить build-arg.
Для `MESHCHATX_BUILD_TARGETS` доступны: `all` (по умолчанию), `wheel` или `electron` (AppImage + deb для x64 и arm64, RPM по возможности, без wheel).
@ -333,16 +333,16 @@ task test:all
task build:all
```
Сокращения `Makefile`:
Цели `Makefile` — тонкие обёртки, делегирующие в `task` (те же команды, что выше):
| Команда | Описание |
| -------------- | --------------------------------------- |
| `make install` | Установить зависимости pnpm и UV |
| `make run` | Запуск MeshChatX через UV |
| `make build` | Сборка фронтенда |
| `make lint` | eslint и ruff |
| `make test` | Тесты фронтенда и бэкенда |
| `make clean` | Удалить артефакты сборки и node_modules |
| Команда | Делегирует в | Описание |
| -------------- | --------------- | ----------------------------------------------------- |
| `make install` | `task install` | Установить зависимости pnpm и UV |
| `make run` | `task run` | Запуск MeshChatX через UV |
| `make build` | `task build` | Сборка артефактов фронтенда и бэкенда |
| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff и basedpyright |
| `make test` | `task test:all` | Тесты фронтенда и бэкенда |
| `make clean` | `task clean` | Удалить артефакты сборки и node_modules |
## Версионирование

View file

@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- 使用 Electron 41.x内置 Node 24 运行时)
- `.whl` 内置 Web 服务器与前端资源,便于多种部署方式
- i18n
- 使用 PNPM 与 Poetry 管理依赖
- 使用 PNPM 与 UV 管理依赖
> [!WARNING]
> MeshChatX 不保证与旧版 Reticulum MeshChat 的数据兼容。迁移或测试前请备份数据。
@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11`(来自 `pyproject.toml`
- Node.js `>=24`(来自 `package.json``engines`
- pnpm `11.1.2`(来自 `package.json``packageManager`
- Poetry(用于 `Taskfile.yml` 与 CI 工作流)
- UV(用于 `Taskfile.yml` 与 CI 工作流)
**Browser Versions Required:**
@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` 已在项目的 `pnpm-workspace.yaml` 中设置;显式的 `pnpm config set` 行同时加固用户级配置。
- pnpm v11+ 默认禁用所有生命周期脚本(`preinstall`/`postinstall`)。仅 `pnpm-workspace.yaml``allowBuilds` 列出的包允许执行安装脚本(当前为 `electron``electron-winstaller``esbuild`)。
- `uv lock --check` 会在 `uv.lock``pyproject.toml` 不同步时立即失败;随后的 `uv sync --group dev` 只会从 lock 文件解析依赖。
- 若需严格按 lock 文件安装 Poetry 依赖(不进行隐式刷新),用 `pip install "uv==0.11.15"` 固定 Poetry 版本,与 CI 保持一致。
- 若需严格按 lock 文件安装 UV不进行隐式刷新`pip install "uv==0.11.15"` 固定 UV 版本,与 CI 保持一致。
如果确有意愿更新依赖,请在独立提交中运行 `pnpm update` / `uv lock`,并在推送前审查生成的 lock 文件 diff。
## 在沙盒中运行Linux
若要在额外隔离文件系统的情况下运行原生 `meshchatx`(别名:`meshchat`),可使用 **Firejail****Bubblewrap**`bwrap`),同时保留 Reticulum 与 Web 界面所需的网络访问。完整示例pip/pipx、Poetry、USB 串口说明)见:
若要在额外隔离文件系统的情况下运行原生 `meshchatx`(别名:`meshchat`),可使用 **Firejail****Bubblewrap**`bwrap`),同时保留 Reticulum 与 Web 界面所需的网络访问。完整示例pip/pipx、UV、USB 串口说明)见:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@ -234,7 +234,7 @@ task dist:fe:rpm
## 容器构建wheel、AppImage、deb、rpm
`Dockerfile.build` 执行与 CI 相同的步骤(Poetry、pnpm、`task`、APT 等)。面向 **linux/amd64**NodeSource amd64 压缩包、Task amd64 二进制)。默认目标为全部;可用 build 参数覆盖。
`Dockerfile.build` 执行与 CI 相同的步骤(uv、pnpm、`task`、APT 等)。面向 **linux/amd64**NodeSource amd64 压缩包、Task amd64 二进制)。默认目标为全部;可用 build 参数覆盖。
`MESHCHATX_BUILD_TARGETS` 可选:`all`(默认)、`wheel``electron`x64 与 arm64 的 AppImage + deb、尽力构建 RPM、不含 wheel
@ -333,16 +333,16 @@ task test:all
task build:all
```
`Makefile` 快捷方式:
`Makefile` 目标为委托给 `task` 的薄封装(与上文命令相同):
| 命令 | 说明 |
| -------------- | --------------------------- |
| `make install` | 安装 pnpm 与 UV 依赖 |
| `make run` | 通过 UV 运行 MeshChatX |
| `make build` | 构建前端 |
| `make lint` | 运行 eslint 与 ruff |
| `make test` | 运行前端与后端测试 |
| `make clean` | 移除构建产物与 node_modules |
| 命令 | 委托至 | 说明 |
| -------------- | --------------- | ----------------------------------------- |
| `make install` | `task install` | 安装 pnpm 与 UV 依赖 |
| `make run` | `task run` | 通过 UV 运行 MeshChatX |
| `make build` | `task build` | 构建前端与后端产物 |
| `make lint` | `task lint:all` | ESLint、vue-tsc、knip、Ruff 与 basedpyright |
| `make test` | `task test:all` | 运行前端与后端测试 |
| `make clean` | `task clean` | 移除构建产物与 node_modules |
## 版本管理