可擴(kuò)展基于Web技術(shù)的開發(fā)多語(yǔ)言云端IDE和桌面IDE——Theia
介紹Theia(全名Eclipse Theia)是一個(gè)可擴(kuò)展的平臺(tái),用于使用最新的Web技術(shù)開發(fā)多語(yǔ)言的云端和桌面的 IDE。目前云端IDE可能是未來(lái)編程的趨勢(shì),而Theia提供了兩種方式云端(即客戶端通過(guò)瀏覽器打開IDE)和桌面端!...
介紹
Theia(全名Eclipse Theia)是一個(gè)可擴(kuò)展的平臺(tái),用于使用最新的Web技術(shù)開發(fā)多語(yǔ)言的云端和桌面的 IDE。目前云端IDE可能是未來(lái)編程的趨勢(shì),而Theia提供了兩種方式云端(即客戶端通過(guò)瀏覽器打開IDE)和桌面端!其界面類似于VSCode,且借鑒了很多VSCode方面的東西,甚至是直接支持VSCode的擴(kuò)展。這讓很多喜愛(ài)VSCode的開發(fā)者能快速的遷移。
Github
https://github.com/eclipse-theia/theia
本項(xiàng)目在Github上代碼更新活躍,截止筆者發(fā)文,最新的提交是在一個(gè)小時(shí)之前,本項(xiàng)目標(biāo)星5k+
以下是本項(xiàng)目的貢獻(xiàn)者和支持者
范圍
- 建立一個(gè)平臺(tái)來(lái)構(gòu)建類似IDE的產(chǎn)品;
- 向最終用戶提供全面的多語(yǔ)言IDE(不僅僅是智能編輯器);
- 同樣支持Cloud IDE和Desktop IDE的范例;
- 通過(guò)語(yǔ)言和調(diào)試服務(wù)器協(xié)議提供對(duì)多種語(yǔ)言的支持;
- 為現(xiàn)代GUI提供javascript UI庫(kù)。
相關(guān)功能特性
1、Theia與VS Code
Theia項(xiàng)目本身也認(rèn)為VS Code是一款出色的產(chǎn)品。這就是Theia接受許多設(shè)計(jì)決策,甚至直接支持VS Code擴(kuò)展的原因。
最重要的區(qū)別是:
- Theia的架構(gòu)更加模塊化,可以進(jìn)行更多自定義,
- Theia是專為在Desktop(桌面)和Cloud(云端)上運(yùn)行而設(shè)計(jì)的,
- Theia由與供應(yīng)商無(wú)關(guān)的開源基金會(huì)開發(fā)。
2、支持JavaScript,Java,Python等
Theia 建立在Language Server協(xié)議之上,得益于不斷增長(zhǎng)的生態(tài)系統(tǒng)超過(guò)60種可用的語(yǔ)言服務(wù)器,為所有主要編程語(yǔ)言提供智能編輯支持。
3、集成多功能終端
Theia集成了功能齊全的終端,可在重新加載瀏覽器時(shí)重新連接,從而保留完整的歷史記錄。
4、布局靈活
Theia的外殼基于PhosphorJS,它為可拖動(dòng)的碼頭布局提供了堅(jiān)實(shí)的基礎(chǔ)。
擴(kuò)展
Theia由擴(kuò)展組成,擴(kuò)展是一個(gè)npm程序包,它公開了許多有助于創(chuàng)建DI容器的DI模塊(ContainerModule)。通過(guò)package.json在應(yīng)用程序的npm-package中添加依賴項(xiàng)來(lái)使用擴(kuò)展。擴(kuò)展可以在運(yùn)行時(shí)安裝/卸載,這將觸發(fā)重新編譯并重新啟動(dòng)。
構(gòu)建屬于你的IDE
- 環(huán)境要求
環(huán)境要求node版本在10+,且安裝了yarn,同時(shí)要求Python2.x的環(huán)境
npm install -g yarn
- 安裝
mkdir my-app
cd my-app
在項(xiàng)目目錄中創(chuàng)建package.json:
簡(jiǎn)而言之,Theia應(yīng)用程序和擴(kuò)展是Node.js軟件包。每個(gè)包都有一個(gè)package.json是體現(xiàn)包裝的元數(shù)據(jù),如文件name,version其運(yùn)行時(shí)間和建造時(shí)間的依賴性等。
- 構(gòu)建
首先,安裝所有依賴項(xiàng)
yarn
其次,使用Theia CLI構(gòu)建應(yīng)用程序。
yarn theia build
yarn在應(yīng)用程序的上下文中查找theia提供的可執(zhí)行文件@theia/cli,然后使用執(zhí)行build命令theia。這可能需要一段時(shí)間,因?yàn)槟J(rèn)情況下該應(yīng)用程序是在生產(chǎn)模式下構(gòu)建的,即混淆并縮小了。
- 運(yùn)行
yarn theia start
yarn theia start /my-workspace --hostname 0.0.0.0 --port 8080
在終端中,應(yīng)該看到Theia應(yīng)用程序已啟動(dòng)并正在偵聽(tīng):
總結(jié)
有關(guān)于Theia的詳細(xì)介紹,以及對(duì)云端IDE感興趣的小伙伴們可以參考Github介紹和詳細(xì)的官方說(shuō)明,云端編程可能會(huì)成為趨勢(shì),對(duì)此感興趣的朋友可以提前體驗(yàn),Theia只是大多數(shù)環(huán)境中的一種,之前筆者也介紹過(guò)code-server,簡(jiǎn)直就是把VSCode搬到的瀏覽器上,Theia也是類似的產(chǎn)品,歡迎體驗(yàn)!如果你有更好的推薦也可以留言分享!
推薦閱讀:電腦主機(jī)內(nèi)部結(jié)構(gòu)