Hasty Briefsbeta

双语

Building a better online editor for TypeScript

8 months ago
  • #Deno
  • #Cloudflare
  • #TypeScript
  • Val Town 提供了一个集成的网页编辑器,用于快速部署TypeScript自动化和应用程序
  • 之前的编辑器存在漏洞且运行缓慢,现经过重写后变得快速、准确并已开源
  • 旧系统在Web Worker中运行TypeScript,存在Deno兼容性和NPM模块体积问题
  • 新系统采用云容器中的Deno语言服务器(DenoLS),提升了性能和兼容性
  • DenoLS在远程运行,通过服务端处理NPM依赖关系,减轻浏览器负担
  • 该架构采用基于WebSocket的LSP协议,参考现有方案但针对Val Town进行了优化
  • 开发了定制化的CodeMirror LSP客户端以支持WebSocket、外部渲染器和回调功能
  • 使用Cloudflare容器进行部署,确保用户隔离和会话持久化
  • 解决方案利用Cloudflare的持久化对象实现路由和生命周期管理,无需自定义有状态路由
  • 未来改进将包括Val Town专属的语言服务器功能和诊断工具
  • 整个系统已作为vtlsp项目开源,包含客户端、服务端和代理组件