video-http-server 汇报文档

315 阅读2分钟

项目地址: github.com/XYShaoKang/…

背景

为了解决在手机上浏览 PC 本地视频不方便的问题.

之前如果要在手机去观看 PC 本地的视频,需要以下几个步骤

  1. 先将文件夹设置共享或者使用 WebDAV 之类的方式共享文件夹
  2. 在手机上安装支持对应协议(SMB,WebDAV,FTP,NFS 等)的播放器或者文件浏览器
  3. 通过 IP 和对应协议连接上之前共享的文件夹
  4. 播放视频

这些步骤,对于观看一个视频来说太麻烦了,而且这些步骤即使对于一个比较熟悉各系统配置的人来说,也需要花费一些时间去折腾.

这个项目就是为了解决这个问题,只需要一个命令,即可在手机上使用浏览器查看 PC 上的视频.

目标

创建一个命令行工具,可以通过命令行启动一个服务,核心目标: 让局域网中的设备可以通过浏览器查看本地指定目录下的视频文件.之后会添加更多功能,比如记录播放进度,拉取弹幕(如果存在),认证等功能

定义

  • Monorepo: 一种项目管理方式,在一个存储库下管理多个相关的项目
  • Rush 专门为管理 Monorepo 项目打造的管理工具,以下简称
  • pnpm 一个快速的包管理工具

工作内容

  • 使用 Rush + pnpm 来管理项目
  • 全部使用 TypeScript 编写代码
  • 前端界面使用 React 来实现
  • CLI 使用 Yargs 来处理命令行处理,使用 Koa 提供 HTTP 服务
  • 通过 GitHub + Travis CI 实现自动化测试,发布,部署等

项目计划,以及现在的进度情况

  • 8.23 - 8.24 搭建环境
  • 8.25 - 8.29 实现前端基础框架
  • 8.29 - 9.2 实现后端 CLI 功能
  • 9.3
    • CLI 跟前端对接,跑通整个生命周期
    • 发布
  • 9.3 - 9.5 文档编写

个人目标: 学习使用 Rush + pnpm

通过实际的使用,熟悉 Rush 的命令,加深了对使用 Rush 来维护项目时整个工作流的理解,以及各种工具和 Rush 集成,并记录和发表了关于使用 Rush + pnpm 的踩坑记录的文章

资源投入

一个人独立开发,使用工作日一些零散时间,加上两个周末,总计耗时 30 个小时左右开发完成

演示

CLI 预览

总结

  • 完成 CLI 核心功能
  • 学习使用 Rush 管理项目
  • 学习了如何去书写文档