0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VS Code的替代品:Eclipse Theia

数据分析与开发 来源:开源前哨 作者:开源前哨 2021-02-04 16:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【导语】:也许大家最近在不少地方看到了一篇《Eclipse 官宣,干掉 VS Code》的文章。

其实这又是在炒 2020 年 3 月的一则冷饭。Eclipse 基金会官方就没说“干掉 VS Code”,说的是“VS Code 的一个真正开源替代品(a True Open Source Alternative to Visual Studio Code)”。

本文就带大家认识一下这个 VS Code 的替代品:Eclipse Theia。

Theia 是一个基于 TS 开发的开源 IDE框架,基于它我们可以开发出自己定制化的开发工具,它可以部署到云端使用,也可以打包成桌面应用。

Theia 是什么?

Eclipse Theia 不是一个 IDE,而是一个用来开发 IDE 的框架。它是一个可扩展的平台,基于现代 Web 技术(TypeScript、CSS 和 HTML)实现,是用于开发成熟的、多语言的云计算和桌面类的理想产品。

9c51ac7a-584b-11eb-8b86-12bb97331649.jpg

在 docker 中运行

使用 docker 来启动一个基于 Theia 的 IDE 是最简单的了,你只需要确保你当前的系统中安装了 docker 即可。我们可以直接使用它提供的镜像theiaide/theia来启动:

#Linux,macOS,或者PowerShell的终端 dockerrun-it--init-p3000:3000-v"$(pwd):/home/project"theiaide/theia:next #Windows(cmd.exe) dockerrun-it--init-p3000:3000-v"%cd%:/home/project"theiaide/theia:next

执行上面的命令后,会自动的去拉取theiaide/theia:next的镜像并且在 http://localhost:3000启动 Theia IDE,它会使用你当前目录作为工作目录。其中,--init参数是用来避免死进程问题的。

假设此刻的目录为:/Users/jerry/workspace/testbox,在该目录下执行上面的命令,我们来看看结果:

9c8bd648-584b-11eb-8b86-12bb97331649.png

docker run theia image

通过日志我们可以看出,Theia IDE 已经成功启动并且监听 3000 端口了,我们打开浏览器看一下它的庐山真面目:

9cb365dc-584b-11eb-8b86-12bb97331649.png

result of docker run theia image

有没有很亲切的感觉?

哈哈,是的,它跟 VS Code 几乎长得一模一样,不仅如此,它同样支持 VS Code 中的插件,所以你可以在 Theia 中尽情的“享用” VS Code 的插件市场。

我们先来跑一个 helloworld 感受一下这个 IDE 的能力:

9d0abfd0-584b-11eb-8b86-12bb97331649.gif

usage of docker run theia image

构建自己的 IDE

如果你不想使用 docker,你完全可以自己构建一个 Theia IDE。接下来我们就基于 Theia,在本地跑起来属于我们自己的 IDE。

环境要求

Node.js 版本 >= 12.14.1 且 < 13

Yarn 版本 >= 1.7.0

创建项目

mkdirmy-theia cdmy-theia

接着创建package.json文件:

{ "name":"MyCoolIDE", "dependencies":{ "@theia/callhierarchy":"next", "@theia/file-search":"next", "@theia/git":"next", "@theia/markers":"next", "@theia/messages":"next", "@theia/mini-browser":"next", "@theia/navigator":"next", "@theia/outline-view":"next", "@theia/plugin-ext-vscode":"next", "@theia/preferences":"next", "@theia/preview":"next", "@theia/search-in-workspace":"next", "@theia/terminal":"next" }, "devDependencies":{ "@theia/cli":"next" } }

通过 package.json 我们看到,其实 Theia 也是个 Node 的包。dependencies中有很多依赖,大致可以推测出,Theia 的功能是由这些包组合起来的,比如@theia/search-in-workspace负责搜索模块,@theia/terminal负责终端模块等;另外,@theia/cli作为devDependencies,我们会在构建与运行时用到它的一些命令。

安装依赖

yarn

如果下载依赖缓慢,建议切换镜像源地址。安装成功的结果应该如下:

9d281c10-584b-11eb-8b86-12bb97331649.png

install theia deps

构建项目

yarntheiabuild

这个命令主要是用来生成项目代码的,包含源码,webpack 配置文件以及 webpack 打包后的文件。运行成功的结果如下:

9d62ce96-584b-11eb-8b86-12bb97331649.png

theia build

运行 Theia IDE

直接运行

yarntheiastart

就能看到我们的 IDE 跑在了 3000 端口:

9d896ace-584b-11eb-8b86-12bb97331649.png

theia start

我们打开http://localhost:3000看看:

9ddbf136-584b-11eb-8b86-12bb97331649.gif

usage of local run theia image

也是与 VSCode 近乎一致的体验。

封装 npm scripts

在package.json中添加:

{ //.....others "scripts":{ "start":"theiastart", "build":"theiabuild" } }

以后我们就可以直接用yarn xxx的方式来执行了。至此,我们本地已经成功构建了一个 IDE ~

(进阶)安装插件

其实上一步我们已经有了一个 IDE 了,但是作为开发工具来说,那可能还差点意思。究竟差点什么呢?我们来写一些代码就知道了:

9e2ab262-584b-11eb-8b86-12bb97331649.png

theia without plugins

是的,一目了然的结果,没有高亮,并且编码的过程中什么提示也没有,也就是相当于一个长得好看的记事本了。这完全不足以称之为一个 IDE,下面我们就来安装这些插件,使我们的 IDE 强大起来。此时,我们需要更新一下package.json:

{ //...others "scripts":{ "prepare":"yarnrunclean&&yarnbuild&&yarnrundownload:plugins", "clean":"theiaclean", "build":"theiabuild--modedevelopment", "start":"theiastart--plugins=local-dir:plugins", "download:plugins":"theiadownload:plugins" }, "theiaPluginsDir":"plugins", "theiaPlugins":{ "vscode-builtin-css":"https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/css-1.39.1-prel.vsix", "vscode-builtin-html":"https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/html-1.39.1-prel.vsix", "vscode-builtin-javascript":"https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/javascript-1.39.1-prel.vsix", "vscode-builtin-json":"https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/json-1.39.1-prel.vsix", "vscode-builtin-markdown":"https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/markdown-1.39.1-prel.vsix" } }

我们更新了scripts,同时又添加了theiaPluginsDir和theiaPlugins这两个属性。theiaPluginsDir是用来设置我们的插件存放地址的,theiaPlugins就是我们要安装的插件了。运行项目之前,我们要先运行yarn prepare来准备环境,我们会在日志中看到插件的下载情况:

9e4e120c-584b-11eb-8b86-12bb97331649.png

download plugins

这些插件都会放在当前目录下的plugins文件夹下。我们再来启动 IDE 看看效果,注意此时 start 带上了参数,指定了插件的目录:

9e74f0a2-584b-11eb-8b86-12bb97331649.png

theia with plugins

可以看到,借助于插件,我们可以真正的使用这个 IDE 作为生产工具了。

打包桌面应用

这个相对来说就比较容易了,只有简单的几步,我们可以直接参考它的 repo:https://github.com/theia-ide/yangster-electron

总结

通过上面的例子,我们已经可以构建出一个属于自己的 IDE 了。如果你有自己的服务器,那么按照上面的步骤搭建一个 Cloud IDE,以后出门就不用背着电脑啦,一个平板,甚至一台手机就可以在线编程

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    8004

    浏览量

    143202
  • 开源
    +关注

    关注

    3

    文章

    4046

    浏览量

    45594

原文标题:Eclipse 出品,1.3 万 Star!网友说要干掉 VS Code 的新工具

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VS Code 中`xiaozhi-esp32` 项目文件夹 修改 I2C 设备地址为 `0x78`

    VS Code 中`xiaozhi-esp32` 项目文件夹 修改 I2C 设备地址为 `0x78`
    的头像 发表于 11-28 07:30 575次阅读

    使用vscode和cmake工具开发极海G32R501 MCU

    目前极海官方提供的 IDE 开发环境有 Keil/IAR/Eclipse。都能很好的完成开发,但是 VS Code 配合 CMake 工具是更加“现代”的C/C++开发环境,本文提供了在 VS
    的头像 发表于 11-25 14:45 2760次阅读
    使用vscode和cmake工具开发极海G32R501 MCU

    VS Code运行 pytest_hello_world.py

    VS Code运行 pytest_hello_world.py
    的头像 发表于 11-24 00:33 369次阅读

    如何在VS code中配置Zephyr集成开发环境

    上一篇文章介绍了如何在VS code中使用瑞萨官方插件为RA芯片创建项目与项目调试,相信大家对RA在VS code中的开发有了基础的了解。
    的头像 发表于 11-05 14:46 1112次阅读
    如何在<b class='flag-5'>VS</b> <b class='flag-5'>code</b>中配置Zephyr集成开发环境

    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想替代品的分析报告

    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想替代品的分析报告 倾佳电子(Changer Tech)是一家专注于功率半导体和新能源汽车连接器的分销商。主要服务于中国工业
    的头像 发表于 10-19 13:31 193次阅读
    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想<b class='flag-5'>替代品</b>的分析报告

    为什么薄硅片是一种高纯度硅的替代品?# 薄硅片# 高纯度# 硅

    半导体
    华林科纳半导体设备制造
    发布于 :2025年09月24日 14:04:46

    技术洞见:THEIA S1 &amp; S1 LITE 直播机实操效果真的棒!

    富视智通专业直播设备THEIA S1直播机家族即将推出该产品便携版—— THEIA S1 LITE ,以“轻量化”为核心设计理念,将专业直播系统的体积和重量压缩至传统设备的1/3,高效能多路4K直播
    发表于 08-25 15:39

    SEGGER工具链集成到CMake和VS Code

    SEGGER公司已将其嵌入式开发工具链集成到了广泛使用的CMake构建配置工具中,这意味着基于Visual Studio CodeVS Code)代码编辑器的应用开发可以方便的使用SEGGER工具实现了。
    的头像 发表于 07-23 15:06 799次阅读

    如何在VS Code中使用瑞萨RA系列MCU

    VS Code(Visual Studio Code)是微软公司出品,它是一个免费且多功能的代码编辑器,几乎支持所有主要的编程语言和框架。特别是最近又新加了Github Copilot功能,让用户
    的头像 发表于 04-16 14:02 3322次阅读
    如何在<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>中使用瑞萨RA系列MCU

    SEGGER SystemView支持Eclipse ThreadX

    SEGGER的实时软件分析工具SystemView v3.60c版本现已支持Eclipse ThreadX(Azure RTOS),用户可以基于Systemview记录ThreadX操作系统事件并执行分析。
    的头像 发表于 04-09 10:43 841次阅读
    SEGGER SystemView支持<b class='flag-5'>Eclipse</b> ThreadX

    请问有没有关于SN74HC1G14的替代品

    请问有没有关于SN74HC1G14的替代品?要求驱动能力大些,最好是能够达到输出电流30mA这样的芯片?谢谢
    发表于 02-14 08:38

    用MCUXPresso for VS Code插件 从0开始打造HelloWorld

    上一篇中Zephyr的Hello 2025,Hello World,小编为大家介绍了使用MCUXPresso for VS Code插件来导入一个Hello World工程。 相信一定有玩家跃跃欲试
    的头像 发表于 01-16 09:20 1689次阅读
    用MCUXPresso for <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>插件 从0开始打造HelloWorld

    使用MCUXpresso for VS Code插件开发Zephyr的hello world

    本期来到Zephyr实战经验演练,小编带着大家一起使用MCUXpresso for VS Code插件来开发一个属于Zephyr的hello world。
    的头像 发表于 01-03 09:21 1802次阅读
    使用MCUXpresso for <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>插件开发Zephyr的hello world

    超级电容是电池的替代品,你认同吗?

    超级电容作为一种新型的储能器件,因其能量密度高、快速充电和放电速度、使用时间长、电容量大等特点,被认为是电池的一种替代品。但在高能量需求和长期保持能量场景下,超级电容仍无法替代电池。
    的头像 发表于 12-31 15:00 1443次阅读
    超级电容是电池的<b class='flag-5'>替代品</b>,你认同吗?

    Zephyr领进门系列:MCUXPresso for VS Code插件安装

    在上一期-Zephyr的构建工具,我们为大家介绍了一位新朋友,Zephyr OS。相信通过上一篇的介绍,大家已经对这一OS有了一些简单的了解。那么本期小编将带着大家一起从0开始结合VS Code搭建
    的头像 发表于 12-19 09:53 2775次阅读
    Zephyr领进门系列:MCUXPresso for <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>插件安装