这是一套以Web终端开发实战为核心的项目教程,基于 Vue 3 + Node.js 开发 极客范儿的浏览器主页应用,带大家掌握现代前端开发的核心技术,学会如何从0到1构建一个功能完整的Web终端系统。
极客范网页终端应用是一个很特别的浏览器主页,支持使用输入命令的方式来操作,目标是帮你在一个web终端中高效完成所有的事情!用户可以通过命令行的方式快速搜索、翻译、听音乐、管理待办事项等,真正体验到Linux终端的魅力。
视频演示:https://www.bilibili.com/video/BV19B4y1Y7m8/
开源地址:https://github.com/liyupi/yuindex
项目导学视频:https://www.codefather.cn/course/1966423442205900801?contentType=video&tabKey=videoList


此外,这也是一个功能强大的web终端组件。开发者可以在它的基础上定制自己的web终端,并且可以在终端中集成任何内容,具有很强的扩展性。

当然,学会这个项目后,你不仅能开发极客范的终端主页,而是能灵活开发各种命令行风格的Web应用,尽情发挥自己的想象力吧!
本项目选题新颖、技术全面,用一套实战教程将现代前端开发的核心技术一网打尽,帮你掌握从前端到后端的全栈开发能力,给你的简历和求职大幅增加竞争力。
你将掌握下面的知识:
Vue 3 Composition API 和响应式开发
TypeScript 类型系统和项目实践
Vite 构建工具和现代前端工程化
Pinia 状态管理和数据流设计
自定义组件开发和组件通信
Web终端UI设计和交互逻辑
命令解析系统架构设计
插件化架构和可扩展性设计
Node.js 后端开发和API设计
Express框架和中间件使用
MySQL 数据库设计和 Sequelize ORM
第三方 API 集成和数据处理
Docker 容器化部署
项目还有其他优势:
前后端全栈实战,不仅会用现成的组件,还会自己写!
基于真实业务场景设计,涵盖用户系统、搜索、翻译等实用功能!
分享大量前端架构设计经验,掌握最佳实践!
此外,还能学会很多系统设计、抽象思维、问题排查的方法,提升独立解决复杂问题的能力。
鱼皮原创项目系列以 实战 为主,用 全程直播 的方式,从 0 到 1 带大家学习技术知识,并立即实践运用到项目中,做到学以致用。
此外,还提供如下服务:
比起看网上的教程学习,鱼皮项目系列的优势:从学知识 => 实践项目 => 复习笔记 => 项目答疑 => 简历写法 => 面试题解的一条龙服务
从需求分析、技术选型、项目设计、项目初始化、Demo 编写、前后端开发实现、项目优化、部署上线等,每个环节我都 从理论到实践 给大家讲的明明白白、每个细节都不放过!
| 对比维度 | 跟学鱼皮项目 | 自学网上免费项目 | ⭐️ 鱼皮项目优势 |
|---|---|---|---|
| 项目选题 | ✅ 选题新颖,刻意避开网上热门项目 | 传统项目场景(博客、商城、管理系统) | 增加区分度,提高简历通过率 |
| 学习人数 | ✅ 少,不容易撞车 | 百万以上,烂大街 | 增加区分度,提高简历通过率 |
| 教学方式 | ✅ 全程直播,带你敲每一行代码、带你踩坑和解决 Bug,不漏过每一个细节 | 录制课程,视频虽然看起来简短、一帆风顺,但你遇到错误无从下手 | 降低学习门槛,减少学习时长 |
| 直播笔记 | ✅ 详细的官方笔记 + 精选学员优质笔记 | 有笔记,但未经筛选 | 学到更多知识细节 |
| 视频内容 | ✅ 项目教程 + 经验分享 | 项目教程 | 学到更多编程经验 |
| 项目源码 | ✅ 完整源码仓库 + 每章的提交记录 + 定期更新 | 只有代码包、不更新 | 节省时间,避免踩坑 |
| 项目答疑 | ✅ 各项目交流群 + 答疑解惑 + 常见问题整理 | 无免费的答疑服务,遇到问题自行解决 | 节省时间 |
| 简历写法 | ✅ 现成的简历写法 | 无 | 节省时间、提高简历通过率 |
| 项目扩展 | ✅ 给出扩展思路 + 学员作品共享 | 无 | 开拓思路、拉开和其他人的差距 |
| 项目面试 | ✅ 项目相关面试题、题解和真实面经 | 无 | 提前准备,面试不懵逼 |
编程导航已有 **近 20 套项目教程!**每个项目的学习重点不同,几乎全都是前端 + 后端的 全栈项目 。
详细请见:https://codefather.cn/course(在该页面右侧有教程推荐和学习建议)
往期项目介绍视频:https://bilibili.com/video/BV1YvmbYbEgS

项目中,我们将开发一个极客范儿的 Web 终端应用,支持命令行操作的浏览器主页,以及一个功能强大的Web终端组件。
具体需求如下:
Web终端组件:从0开始实现的web终端控制台,支持命令输入、输出展示、历史记录、快捷键、命令提示等完整功能
命令系统:独立于终端的命令解析执行引擎,支持命令注册、匹配、解析、执行,以及子命令机制
搜索功能:支持从百度、Google、GitHub、知乎等多个平台快速搜索内容
翻译功能:集成百度翻译API,支持多语言翻译
音乐功能:集成网易云音乐API,支持在线听音乐
空间管理:类似收藏夹的功能,可以存储和管理网页链接
用户系统:支持用户注册、登录,个性化配置同步
终端配置:支持更换背景、开关提示等个性化定制
其他实用工具:待办事项、定时器、网络检测等
项目以现代前端技术栈为核心,涉及到多种主流前后端技术的运用。
Vue 3 + Composition API
Vite 构建工具
TypeScript 类型系统
Ant Design Vue 3 组件库
Pinia 2 状态管理
Eslint + Prettier 代码规范
依赖库:
axios 网络请求
dayjs 时间处理
lodash 工具库
getopts 命令参数解析
Node.js + Express
MySQL + Sequelize ORM
Redis 缓存和Session存储
express-session 会话管理
第三方服务:
百度翻译 API
网易云音乐 API
新浪壁纸 API
整个项目采用插件化和模块化的设计思想,主要体现在两个方面:
开放性:采用类插件化设计,便于开发者自定义新命令,且能够通过配置自动生成帮助提示
重前端轻后端:考虑到扩展性、安全性以及实现的方便,除了核心模块外,尽量不请求后端
系统分为 3 个核心模块,各模块职责分明:
微终端:UI 展示和终端交互逻辑,负责用户输入输出、命令历史、快捷键等
命令系统:连接微终端和命令集的中介者,负责匹配、解析和执行命令,并通过终端提供的操作接口给予其反馈
命令集:各种不同功能的命令定义和实现,支持插件化扩展
前端架构图:

从 0 开始实现的 web 终端控制台,包含以下模块:
终端输入:常驻 Input 框,负责接收用户命令
终端输出:负责展示用户的命令及执行结果等,支持以下三种类型的输出
命令类型:输入命令 + 结果列表
文本类型:单行文本展示,内置 5 种不同的展示状态(成功、错误、警告、信息、系统等)
自定义组件类型:可以自由定制要展示的内容
快捷键:更方便地操作终端,使用 document.onkeydown 全局按键事件实现
开放接口:提供一组操作终端的 API,供命令系统调用,比如清屏、立即输出等
命令历史:记录用户输入的命令结果,使用 Vue 3 Composition API 封装部分逻辑
命令提示:根据用户的输入给出提示,使用 Vue 3 Composition API 独立封装
一套独立于终端的命令解析执行引擎,包含以下模块:
鱼皮本来打算使用现成的 xterm.js,但实际使用中发现它的文档比较少、问题难解决,解决问题消耗的时间足够自己写一套新的 web 终端了。而且它更适用于和后端服务器强交互的场景,与本项目的定位不符。
开源的 web 终端很少,想给开源贡献一份力。
帮助自己复习 Vue,突破个人系统开发设计能力的边界。
第 1 期:项目总览
项目介绍
项目优势
项目功能梳理
技术选型
架构设计
学习大纲
第 2 期:前端基础架构
第 3 期:Web 终端组件
终端 UI 设计和布局
输入输出组件
命令历史功能
快捷键系统实现
命令提示功能
终端配置和主题
第 4 期:命令系统
第 5 期:核心命令开发
搜索命令
翻译命令
音乐播放命令
空间管理系统
终端控制命令
实用工具
第 6 期:后端开发实战
Node.js + Express 项目搭建
数据库设计和 Sequelize 开发
用户系统开发
第三方 API 集成
全局异常处理
跨域配置
第 7 期:部署上线
