TypeScript web
TypeScript web 表示项目把 TypeScript 作为一个或多个 Web surface 的主语言,并围绕它建立 workspace scripts、typecheck、bundler、lint/format、env contract 和前端构建门禁。这里的主语不是“仓库里出现了 .ts 文件”,而是 TypeScript 已经决定了维护者怎样启动、构建、校验和交付实际 Web surface。
- 前端
目录
Definition
TypeScript web 表示项目把 TypeScript 作为一个或多个 Web surface 的主语言,并围绕它建立 workspace scripts、typecheck、bundler、lint/format、env contract 和前端构建门禁。这里的主语不是“仓库里出现了 .ts 文件”,而是 TypeScript 已经决定了维护者怎样启动、构建、校验和交付实际 Web surface。
这个 Topic 是 Web 技术栈里的基础层,而不是 UI runtime 或组件系统本身。React app 解释单页应用 runtime,Astro site / Next.js app 解释页面交付形态,shadcn/ui 解释 open-code component layer,Storybook / Playwright 解释验证 surface;TypeScript web 负责把这些东西粘成一套可运行、可构建、可类型校验的工程骨架(projects/kaisoumail.md、projects/blog-26.md、projects/mains-aegis.md)。
When to use
当项目存在 package.json、tsconfig*.json、Vite/Astro/Next/React scripts,且这些入口直接对应产品页面、docs site、admin UI、device Web UI 或 operator console 时使用。命中条件不是“用了 TypeScript”,而是维护者修改这个系统时,必须理解 TypeScript workspace 和 scripts 才能正确完成任务。
如果改动触及 frontend build、docs-site、admin SPA、control plane、package scripts、typecheck、bundler config、Playwright/Storybook、version injection、preview port 或 UI release artifact,就应使用本 Topic。若 TypeScript 只出现在一次性脚本、代码生成辅助、测试工具或非 Web 交付面的内部工具中,则应留在更具体的 Topic 里,不要把整个项目抬成 TypeScript web(projects/mains-aegis.md、projects/style-playbook-skills.md)。
Habits / defaults
- 保留 root workspace 与子项目脚本边界;
projects/kaisoumail.md的 rootcheck/typecheck/test/build聚合多个 package。 - 端口必须可配置或经租约注入;docs-site 和 Vite 默认端口不能直接当作 owner-facing preview。
- TypeScript web gate 至少应覆盖 typecheck/build/lint;UI 项目再叠加 Playwright/Storybook。
- 中文优先项目文档可以保留英文技术 token,尤其是 script name、package name、workflow name。
- 项目快照要写清 root workspace 与子 app 的职责。Bun/pnpm/npm、
apps/*、web/、docs-site/、site/的脚本常常分别代表不同交付面,不能用一个 rootbuild概括全部(projects/kaisoumail.md、projects/blog-26.md)。 - 默认把 package manager 视为 runtime contract 的一部分。Bun/pnpm/npm 不只是安装工具,它会影响 lockfile、workspace 解析、脚本行为和 CI 复现;知识库里要明确记录实际采用者,而不是只写“前端项目”(
projects/kaisoumail.md、projects/blog-26.md)。 - 对 hybrid repo,要先判断 TypeScript surface 是独立 app、docs-site、embedded UI 还是设备控制台。像
projects/blog-26.md同时有 Astro public site、Vite admin 和 legacy Next;像projects/loadlynx.md则是设备仓里的 Web UI。回答问题时不能默认它们都是“单一 Web 前端”。 - 对 owner-facing Web UI,类型通过只是最低门槛;需要根据风险补 Storybook、Playwright、visual evidence 或真实浏览器验证,尤其是表单、表格、长文本和响应式布局(
projects/proxy-broker.md、projects/loadlynx.md)。 - TypeScript Web 改动默认要核对 env 和 version 注入链。像
projects/blog-26.md的 gateway/多 runtime 脚本、projects/codex-vibe-monitor.md的VITE_APP_VERSION写入,都是“build 通过但运行结果不对”最常见的来源。
Reference implementations
projects/kaisoumail.md:Bun workspace + Cloudflare Worker/Web/docs-site。projects/blog-26.md:Astro + Admin SPA + legacy Next TypeScript runtime。projects/mains-aegis.md:Vite Web 管理台和 Rspress docs-site。projects/loadlynx.md:设备 Web UI 与 firmware mono-repo 共存。projects/codex-vibe-monitor.md:React dashboard 与 Rust service 一起发布,适合检查 TypeScript build 如何参与 Docker/runtime version injection。projects/flux-purr.md:设备控制台把 TypeScript Web surface 放在硬件/firmware repo 中,提醒维护者不要忽略 device context。
Failure modes
- 只看 root package 会漏掉
web/package.json或apps/web/package.json。 - 把 docs-site 和 product app 混成一个 surface,会让构建/发布证据不清。
- TypeScript build 通过不代表浏览器行为通过。
- 忽略 lockfile/package manager 会造成本地验证与 CI 不一致;项目快照应记录 Bun/pnpm/npm 选择和关键脚本,而不是只写“TypeScript 项目”(
projects/kaisoumail.md)。 - 只按语言标签生成 Topic,会把 Astro/React/Next/shadcn/Storybook 等真实工程模式压扁;Taxonomy 应同时保留基础 Web tooling 和具体 runtime/component/QA Topic(
projects/blog-26.md)。 - 把 root
dev/build当成唯一入口,会让多 surface 仓库失去可操作性。修正方式是回到 project snapshot 的 Repository map 和 Runtime sections,明确每个 TypeScript surface 的独立命令、端口和输出(projects/kaisoumail.md、projects/blog-26.md)。 - 把 TypeScript Web 当纯 UI Topic 使用,会漏掉 workspace、env、lockfile 和脚本契约;这类问题通常在部署或 CI 才爆,不会在单个组件 diff 里自己暴露。
Evidence index
projects/kaisoumail.mdprojects/blog-26.mdprojects/mains-aegis.mdprojects/loadlynx.md
相关内容
Ivan's Blog 2026
项目实践Ivan's Blog 2026 是 Ivan 博客平台的公开开源镜像,由 Astro public site、Vite/React admin SPA 和 Bun gateway/API 组成。README.md、astro.config.mjs、apps/admin/、src/server/ 和 package.
Codex Vibe Monitor
项目实践Codex Vibe Monitor 是面向自部署的 OpenAI 兼容代理观测工作台:它接入 /v1/* HTTP / WebSocket 流量,将调用留证、实时 SSE、历史统计、请求排障、上游账号池、forward proxy、价格目录和 SQLite 持久化收在同一套运营界面中。
display-ambient-light-desktop
项目实践Cross-platform desktop app for ambient lighting control: Tauri backend + a TS/SolidJS frontend, with Rust toolchain pinned. Evidence: src-tauri/, package.json, rust-toolchain.toml.
Flux Purr
项目实践Flux Purr 是 embedded firmware + React control console 的设备 mono-repo。README.md 将仓库组织为 firmware/、web/、tools/flux-purr-devd/、docs/specs/、docs/hardware/、.
IsolaPurr USB Hub
项目实践IsolaPurr USB Hub 是带 USB-C 上行、USB-C 下行和 USB-A 下行的有源 USB 集线器/供电模块。README.md 记录 CH334P、URB2405S、CH224Q、TPS55288、SW2303/IP6557、DC5025 输入和理想二极管 OR-ing 等硬件方案,说明这是硬件/固件/Web/文档一体的 device mono-repo。
KaisouMail
项目实践KaisouMail 是 Cloudflare temporary email platform,基于 Email Routing、Workers、D1、R2,以及 React + shadcn/ui control plane。README.md 和 README.zh-CN.md 同时存在,说明文档需要中英双语入口;公开 docs site 与 Storybook 也是产品交付面,而不只是开发辅助。
LoadLynx
项目实践LoadLynx 是 STM32G431 + ESP32-S3 便携式电子负载。README.md 明确采用分体式架构:STM32G431 执行快速电流/功率闭环与保护,ESP32-S3 负责 UI/Wi-Fi/OTA/记录/标定及上位机桥接。这是典型 device mono-repo,不能只从一个 firmware 目录理解。
Mains Aegis
项目实践Mains Aegis 是 UPS / power-management 设备 mono-repo:它把硬件行为文档、ESP32-S3 固件、Web 管理界面、docs-site、前面板/音频预览工具和质量门禁放在同一个维护边界里。PRODUCT.md 明确把 Web 管理界面定义为面向多设备 UPS 的只读运维控制台,首要目标是让维护者快速判断设备健康、离线、后备供电和告警状态,而不是做可写控制台。
Oidrune
项目实践Oidrune 是一个由运营者控制的 GitHub Actions 通知中继:它验证短期 GitHub OIDC 身份,只接受已批准来源的 workflow completion event,并把调用方提供的规范化正文投递到一个运营者控制的 Telegram destination。
PastePreset
项目实践PastePreset 是一个 privacy-first、纯浏览器端的图片处理 Web app。package.json、README.md、docs/pwa-offline-support.md 和 public/manifest.
power-desk
项目实践Rust-based project for an ESP32-C3 power management device, with a web-based configuration tool and verification docs. Evidence: Cargo.toml, README_WIFI_CONFIG.md, web-config-tool/.
Proxy Broker
项目实践Proxy Broker 是 standalone Rust service,用于加载 mihomo subscriptions,按 IP 构建带 probe/geo metadata 的代理池,按选择的 IP 开关本地 proxy listener sessions,并从同一 binary 提供 Bun-built operator web console。README.
Style Playbook Skills
项目实践Style Playbook Skills 是 Ivan style playbook 的 source-of-truth 仓库:它保存人工维护的 project snapshots、Topic packages、六个 global group Skills,以及用于浏览、筛选和触发生成任务的本地 library site。
tm-search-engine-switcher
项目实践TypeScript user-script project for quickly switching/searching across search engines (TemperMonkey). Evidence: package.json, tsconfig.json.
Tuckmark
项目实践Tuckmark 是一个 agent-native label printing workspace,统一承载打印机发现、能力探测、模板渲染、批量预览、位图打印,以及 CLI、MCP、HTTP 和 Web surfaces(README.md)。