文档开发

Rust · 0.1.0

开发环境

在有权访问的源码中准备固定的 Rust 与前端工具链。

工具与源码

仓库固定使用 Rust 1.94.0,并包含 rustfmt 与 Clippy。前端使用 Node.js 24 和 pnpm 11.0.1。原生依赖需要 C/C++ 工具链与 CMake,协议生成还使用 Buf。修改行为前,先阅读仓库 AGENTS.md 及相关源码和测试。本分支仓库为私有,源码访问需要单独授权。

两个开发进程

后端使用回环地址和独立数据路径运行,然后从 web/ 启动前端开发服务。前端开发代理指向 8081 端口。使用合成笔记和测试账号。未包含发行资源的调试后端可能显示开发占位页;前端开发通常使用 Vite 界面。

# Use a dedicated development shell
unset MEMOS_UNIX_SOCK MEMOS_DEMO
cargo run --locked --bin memos -- \
  --addr 127.0.0.1 --port 8081 --driver sqlite --dsn '' --data ./dev-data

# In a separate terminal:
cd web
pnpm install --frozen-lockfile
pnpm dev

安装依赖前检查环境

以下命令采用 Unix 风格终端;Windows 应在对应 MSVC 或 Clang 环境检查编译器,不应假定一定存在 cc 命令。在应用源码目录运行其余命令。rustup 应选择仓库要求的 1.94.0 工具链。对照 web/package.json 检查 Node 和 pnpm,并确认原生编译器与 CMake 可用,再判断 Cargo 失败是否来自 Rust 源码。缺少的工具应从对应操作系统的官方发行渠道安装。

rustup show active-toolchain
rustc --version
cargo --version
node --version
pnpm --version
cmake --version
cc --version

验证第一次完整会话

两个开发进程运行后,先检查后端,再打开 Vite 打印的地址。使用全新隔离数据库时,在本地完成首次账号设置。保存一条合成笔记,刷新读取,再修改一次并重新刷新。这能区分“编译成功”和“浏览器到数据库完整链路可用”。结束时停止两个终端;希望下次保留测试记录时,应保留指定数据目录。

curl --fail http://127.0.0.1:8081/healthz

按症状排查环境问题

保留第一条有用错误及触发它的命令。反复重装全部依赖,会让配置问题更难定位。

症状检查方向
pnpm 提示引擎或锁文件不匹配使用要求的 Node/pnpm 版本及仓库锁文件,不要删除锁文件强行安装
Cargo 无法构建 SQLite 或音频依赖检查 C/C++ 工具、CMake 和首条原生构建错误
后端显示开发占位页打开 Vite 地址;发行构建需要 pnpm release 产物
Vite 的 API 请求失败确认后端运行于 8081,并检查启动日志及健康响应
端口已被占用确认占用进程;保持前端代理和后端端口一致,不要重复启动服务
每次启动笔记都不见了比较每次运行的 --data 路径及工作目录