跳转至

Kagari (篝火) - 技术栈 (Technical Stack)

Kagari (篝火) 的技术栈是围绕性能、现代开发体验 (DX) 和前瞻性来构建的。我们选择的工具旨在实现快速的开发迭代、极高的运行时性能和无缝的跨平台 PWA 体验。

1. 核心基础 (Core Foundation)

类别 技术 角色
运行时 & 工具链 Bun JavaScript 运行时、包管理器、打包器、测试运行器
开发 & 构建 Vite 下一代前端工具,提供极速的 HMR (热模块替换)
语言 TypeScript JavaScript 的超集,提供强类型支持
UI 库 React 用于构建用户界面的 JavaScript 库

为什么这样选?

  • Bun (as All-in-One Toolkit): 我们选择 Bun 作为首选的运行时和包管理器,因为它提供了无与伦比的性能。它极大地加快了依赖安装 (bun install) 和脚本运行 (bun run) 的速度。它内置的工具链(打包器、测试器)简化了我们的开发依赖,使项目保持轻量和高速。
  • Vite (as Dev Server): Vite 提供了近乎瞬时的服务器启动和闪电般的 HMR,这是实现卓越开发者体验的关键。它使我们能够即时看到 UI 和功能的更改。
  • React & TypeScript: React 的组件化模型是构建 Kagari 复杂 UI(如面板、对话框、仪表盘)的理想选择。TypeScript 为这个开源项目提供了必要的代码健壮性和可维护性,使协作变得更安全、更高效。

2. 核心架构与功能 (Architecture & Features)

类别 技术 角色
状态管理 Jotai 原子化的 (Atomic) 状态管理库
CSS 样式 TailwindCSS Utility-First (功能优先) 的 CSS 框架
路由 React Router 声明式的客户端路由库
应用形态 PWA 渐进式 Web 应用,实现原生般的安装和离线体验

为什么这样选?

  • Jotai (for State Management): Kagari 的 UI 状态是高度分散的(例如:isMapOpen, currentBgmTrack, playerStats)。Jotai 的原子化模型允许我们创建微小、独立的“状态原子”,并以一种高性能、自下而上的方式管理它们。这避免了大型、单一 store 带来的复杂性和不必要的重渲染。
  • TailwindCSS (for Styling): 为了实现《审美指南》中定义的独特、风格化的视觉效果,我们需要一个能够快速迭代的 CSS 解决方案。TailwindCSS 的 Utility-First 方法使我们能够直接在 JSX/TSX 中构建复杂、响应式的设计,而无需编写单独的 CSS 文件或担心命名冲突。
  • React Router (for Routing): 作为 React 生态的标准路由库,它为 Kagari 提供了管理不同视图(如主屏 "篝火" 界面、游戏界面、设置界面)所需的灵活性和强大功能。
  • PWA (for Immersive Experience): PWA 是实现 Kagari “沉浸式”目标的核心。它允许用户将 Kagari “安装”到他们的桌面或移动设备上,提供全屏、无地址栏的原生应用体验,并为未来的离线功能(如缓存剧本和资源)打下基础。

3. 前瞻性构建 (Bleeding-Edge Tooling)

这是 Kagari 技术栈中最具前瞻性的部分,旨在利用生态系统中的最新进展来最大化性能和简化代码。

类别 技术 角色
React 优化 React Compiler 一个自动优化的编译器,无需 useMemo / useCallback
Vite 插件 rolldown-vite 一个实验性插件,用 Rolldown 替代 Vite 的生产构建器

为什么这样选?

  • React Compiler (for Logic-First Code): React Compiler (前身为 "Forget") 是 React 的未来。它会自动将 React 代码进行 memoization 优化,使我们不再需要手动包裹 useMemouseCallback 来防止不必要的重渲染。这极大地简化了我们的代码库,让我们可以专注于业务逻辑,而不是 React 的性能调优。
  • Rolldown (for Ultimate Build Speed): 我们选择 rolldown-vite 是一个前瞻性的赌注。Vite 目前在开发时使用 esbuild,在生产构建时使用 RollupRolldown 是一个用 Rust 编写的新一代 JavaScript 打包器,旨在同时取代 esbuildRollup,提供统一的、闪电般的构建体验。通过早期采用,我们确保 Kagari 始终站在 Vite 生态系统性能的最前沿。