Files
bolt.new/docs/system-architecture.md
2024-10-19 08:06:54 +00:00

2.1 KiB

Bolt 系统架构

1. 核心模块

1.1 WebContainer

WebContainer 是整个系统的核心,它提供了在浏览器中运行全栈应用的能力。

  • 位置: app/lib/webcontainer/index.ts
  • 主要功能:
    • 初始化 WebContainer
    • 提供文件系统、Node.js 运行时等功能

1.2 文件系统

文件系统模块负责管理项目文件。

  • 位置: app/lib/stores/files.ts
  • 主要功能:
    • 文件的增删改查
    • 文件修改追踪
    • 文件差异计算

1.3 编辑器

编辑器模块基于 CodeMirror 实现,提供代码编辑功能。

  • 位置: app/components/editor/codemirror/CodeMirrorEditor.tsx
  • 主要功能:
    • 代码高亮
    • 语法提示
    • 主题切换

1.4 AI 集成

AI 集成模块负责与 AI 模型(如 Claude)交互。

  • 位置: app/lib/.server/llm/
  • 主要功能:
    • AI 模型配置
    • 提示词处理
    • 流式响应处理

2. 用户界面组件

2.1 聊天界面

聊天界面是用户与 AI 交互的主要入口。

  • 位置: app/components/chat/
  • 主要组件:
    • BaseChat: 基础聊天组件
    • Markdown: Markdown 渲染组件
    • CodeBlock: 代码块渲染组件

2.2 工作台

工作台集成了编辑器、文件树、预览等功能。

  • 位置: app/components/workbench/
  • 主要组件:
    • Workbench: 工作台主组件
    • EditorPanel: 编辑器面板
    • FileTree: 文件树组件
    • Preview: 预览组件

3. 状态管理

系统使用 nanostores 进行状态管理。

  • 位置: app/lib/stores/
  • 主要 store:
    • workbench: 工作台状态
    • editor: 编辑器状态
    • files: 文件系统状态

4. 路由和页面

系统使用 Remix 进行路由管理。

  • 位置: app/routes/
  • 主要路由:
    • 根路由: 应用入口
    • 聊天路由: 聊天界面

5. 工具和辅助函数

  • 位置: app/utils/
  • 主要功能:
    • 日志记录
    • 类名处理
    • 文件差异计算
    • Markdown 处理

6. 样式

系统使用 SCSS 和 UnoCSS 进行样式管理。

  • 位置:
    • app/styles/
    • uno.config.ts

7. 构建和部署

系统使用 Vite 进行构建,部署到 Cloudflare Pages。

  • 位置:
    • vite.config.ts
    • wrangler.toml