业务开发须要 webIDE,经技术调研,最终选定了 eclipse Theia。eclipse Theia 的文献很少,更无官方中文文档,在阅读中决定将其翻译成文。前端
本节对 Theia 的整体架构进行说明node
Theia 能够是一个桌面应用,也能够在浏览器和远程服务中运行。为了用同一套代码,支持桌面应用和webIDE,Theia 运行在两个独立的进程中。这个进程分别被称为前端和后端,它们经过WebSockets上的JSON-RPC消息或HTTP上的REST api进行通讯。在桌面应用中,后端和前端都在本地运行,而在远程上下文中后端将在远程主机上运行。web
前端和后端流程都有它们的依赖注入容器,能够贡献扩展。express
前端进程表明客户端而且担任呈现UI的职责。在浏览器中,它简单的在渲染循环中运行,而在Electron中,它在 Electron 的窗口中运行,Electron 窗口是一个基本的带有附加 Electron和Node.js api的浏览器。而任何前端代码均可以假设浏览器是一个平台,而不用关联 Node.js。后端
后端进程运行在Node.js上。咱们使用express做为HTTP服务器。它可能不须要使用任何依赖浏览器做为平台的代码(DOM api)。 后端应用程序的启动将首先加载全部贡献扩展的DI模块,而后得到BackendApplication的实例并在其上调用start(portNumber)。默认状况下,后台的express服务器也为前台提供代码。api
在扩展程序的顶层文件夹中,咱们还有一个附加的文件夹层,能够按平台分开:浏览器
common文件夹包含不依赖于任何运行时的代码。服务器
浏览器文件夹包含要求使用现代浏览器做为平台(DOM API)的代码。架构
电子浏览器文件夹包含须要DOM API以及Electron渲染器过程特定的API的前端代码。eclipse
节点文件夹包含(后端)代码,须要Node.js做为平台。
node-electron文件夹包含特定于Electron的(后端)代码。
要了解Theia架构的高层概述,请参阅这个文档: