工具与源码
仓库固定使用 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 路径及工作目录 |