Svelte Bash:为 Svelte 5 设计的轻量级终端组件(自动播放、VFS、主题、自定义命令)

发布: (2025年12月11日 GMT+8 09:17)
3 min read
原文: Dev.to

Source: Dev.to

为什么我创建了 Svelte Bash

我需要一个用于演示、文档和交互式教程的终端组件——既轻量、可主题化,又能轻松嵌入任何 Svelte 页面。大多数现有方案要么太臃肿,要么不是原生 Svelte 的,于是我从零开始打造了 Svelte Bash,目标如下:

  • 采用现代 Svelte 5 特性
  • 零依赖
  • 小到可以放在着陆页上
  • 具备真实的终端行为
  • 可轻松扩展自定义命令

关键特性

1. 自动播放模式(脚本化演示)

非常适合着陆页、教程和文档。命令会自动输入并执行。

2. 虚拟文件系统(VFS)

一个带有真实命令(lscdpwdcat)的迷你虚拟文件系统。像下面这样定义你的结构:

const fileSystem = {
  'readme.md': '# Hello World',
  src: {
    'app.js': 'console.log("Hi")'
  }
};

3. 自定义命令

添加你自己的 CLI 命令——同步或异步均可。

"Hello from Svelte Bash!",
echo: (args) => args.join(' '),
fetchdata: async () => {
  const res = await fetch('https://api.example.com');
  return await res.text();
}

4. 深度主题(暗色、亮色、Dracula、Matrix + 自定义主题)

使用内置预设或自行提供配色:

5. 完全使用 TypeScript 类型化

每个属性、命令和 VFS 条目都包含精确的 TypeScript 定义。

6. 轻量且快速

  • 零依赖
  • gzipped 后约 4 KB
  • 为 Svelte 5 rune 优化
  • 没有运行时开销

非常适合生产站点、文档和作品集页面。

安装

npm install svelte-bash

基本用法

import { Terminal } from "svelte-bash";

使用场景

  • 开发者作品集
  • 着陆页演示
  • 交互式文档
  • 基于网页的 CLI 工具
  • 编程教程
  • 入职培训体验

给项目加星

如果 Svelte Bash 对你有帮助,给它一个 GitHub star 将意义重大——这能提升可见度,让更多 Svelte 开发者发现它。

GitHub:
Live demo:

反馈与贡献

欢迎提出建议、功能想法或 bug 报告。Issues 和 PR 一直欢迎。

Back to Blog

相关文章

阅读更多 »

Python 极简网页文件管理器

大家好,我想分享一下我一直在做的项目:pycgi-fm,一个轻量级的 Python CGI File Manager,旨在提供简单、干净的基于网页的文件管理…