一个帮助你快速搭建本地和云端 IDE 的框架

一个帮助你快速搭建本地和云端 IDE 的框架

2022-11-10 0 1,247
资源编号 47828 最近更新 2022-11-10
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是一个快速搭建Cloud及桌面端IDE产品的底层框架——OpenSumi。

一个帮助你快速搭建本地和云端 IDE 的框架

OpenSumi 框架旨在解决阿里经济体内部 IDE 产品研发的重复建设问题,满足 IDE 在更多垂直场景的定制能力,同时实现 Web 与本地客户端共用底层,让 IDE 研发从早期的“刀耕火种”时代向“机器化大生产”时代迈进。

功能特性

  • 轻松集成:提供面向容器场景、Electron 场景和纯前端场景的快速集成解决方案,助力业务快速落地
  • 高拓展性:提供从 VS Code 插件、OpenSumi 插件到 OpenSumi 模块三层业务解决方案,完美支持业务定制需求
  • UI 自定义:提供可任意定制的布局系统,支持从简单的视图配置到布局模板研发的各类场景,支持从插件注入自定义视图

整体架构

为了保证框架可以同时在 Web 和 Electron 环境下运行,OpenSumi 采用了一套前后端分离、通过一层抽象的通信层进行相互调用的项目结构。

在 Web 上,我们使用 WebSocket 来作为通信的实现。

在Electron 上,我们则是 IPC 通信。

每一个通信的连接对应前后端一个独立的 DI (Dependence Inject) 容器,所以 OpenSumi 的后端实现是无状态的,不同连接之间是严格隔离的。

在 OpenSumi 内主要有三个核心进程:

  • 插件进程 (Extension Process)
  • 后端进程 (Node Process)
  • 前端进程 (Browser Process)

为了保证插件的问题不会影响 IDE 的性能表现,插件能力上 OpenSumi 采用了跟 VS Code 类似的方案,通过独立的插件进程去启动插件,插件进程再通过后端进程与前端进程进行通信。

一个帮助你快速搭建本地和云端 IDE 的框架

OpenSumi 的不同能力实现被拆分到了不同的模块内,这些模块通过 贡献点机制 (Contribution Point)、DI 机制 (Dependence Inject) 互相之间有较弱的依赖关系,对于一些比较核心的基础模块,如主题服务、布局服务等,也会被其他模块直接依赖。

因此,在集成开发过程中需要保证一些模块的引入顺序。

整体启动的生命周期如下图所示:

一个帮助你快速搭建本地和云端 IDE 的框架

快速开始(Web)

OpenSumi 基于 Node.js 12.x + 版本开发,需要确保你本地已经安装上正确的 Node.js 版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 node-gyp 中的安装指南来搭建本地环境。

一个帮助你快速搭建本地和云端 IDE 的框架

本地启动

注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。

依次运行下面的命令:

$ git clone git@github.com:opensumi/ide-startup.git

$ cd ide-startup

$ yarn # 安装依赖

$ yarn start # 并行启动前端和后端

浏览器打开 http://127.0.0.1:8080 进行预览或开发。

使用 Docker 镜像

# 拉取镜像

docker pull ghcr.io/opensumi/opensumi-web:latest

# 运行

docker run --rm -d -p 8080:8000/tcp ghcr.io/opensumi/opensumi-web:latest

浏览器打开 http://127.0.0.1:8080 进行预览或开发。

快速开始(Electron)

OpenSumi 内部集成了一个简易的 Electron 框架,旨在提供一个快速测试 OpenSumi 的桌面端环境。可以使用 ide-electron 作为模板搭建自己的客户端。

你也可以在 Release (
https://github.com/opensumi/ide-electron/releases)列表中获取相关安装包进行快速体验。

一个帮助你快速搭建本地和云端 IDE 的框架

兼容环境

  • Electron 11.4.3+
  • macOS & Windows 7+
  • Node.js 12+

本地启动

注意:由于编译过程中需要下载大量的包,并且部分包需要访问 GitHub 下载源码,请保持 GitHub 的访问畅通。很多 404 Not Found 的问题都是网络访问失败引起的。 大陆用户如果是因为网络问题,导致不能正常安装依赖,可以先切换到 main-cn 分支: git checkout main-cn,或者参考文章最后的附录配置 npm 镜像。

依次运行下面的命令:

$ git clone git@github.com:opensumi/ide-electron.git

$ cd ide-electron

$ yarn

$ yarn build

$ yarn rebuild-native -- --force-rebuild=true

$ yarn download-extension # 安装内置插件(可选)

$ yarn start

开发

在项目根目录运行:

$ yarn watch

启动:

$ yarn start

打包

运行 yarn pack 即可将项目打包,打包后的安装包将输出在 out 目录。

npm 镜像配置

打开 ide-electron/.npmrc,添加下面的 npm 镜像配置,可以解决安装依赖失败的问题:

registry=https://registry.npmmirror.com/
disturl=https://npmmirror.com/mirrors/node
chromedriver-cdnurl=https://npmmirror.com/mirrors/chromedriver
couchbase-binary-host-mirror=https://npmmirror.com/mirrors/couchbase/v{version}
debug-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector
flow-bin-binary-host-mirror=https://npmmirror.com/mirrors/flow/v{version}
fse-binary-host-mirror=https://npmmirror.com/mirrors/fsevents
fuse-bindings-binary-host-mirror=https://npmmirror.com/mirrors/fuse-bindings/v{version}
git4win-mirror=https://npmmirror.com/mirrors/git-for-windows
gl-binary-host-mirror=https://npmmirror.com/mirrors/gl/v{version}
grpc-node-binary-host-mirror=https://npmmirror.com/mirrors
hackrf-binary-host-mirror=https://npmmirror.com/mirrors/hackrf/v{version}
leveldown-binary-host-mirror=https://npmmirror.com/mirrors/leveldown/v{version}
leveldown-hyper-binary-host-mirror=https://npmmirror.com/mirrors/leveldown-hyper/v{version}
mknod-binary-host-mirror=https://npmmirror.com/mirrors/mknod/v{version}
node-sqlite3-binary-host-mirror=https://npmmirror.com/mirrors
node-tk5-binary-host-mirror=https://npmmirror.com/mirrors/node-tk5/v{version}
nodegit-binary-host-mirror=https://npmmirror.com/mirrors/nodegit/v{version}/
operadriver-cdnurl=https://npmmirror.com/mirrors/operadriver
phantomjs-cdnurl=https://npmmirror.com/mirrors/phantomjs
profiler-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector/
python-mirror=https://npmmirror.com/mirrors/python
rabin-binary-host-mirror=https://npmmirror.com/mirrors/rabin/v{version}
sass-binary-site=https://npmmirror.com/mirrors/node-sass
sodium-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/sodium-prebuilt/v{version}
sqlite3-binary-site=https://npmmirror.com/mirrors/sqlite3
utf-8-validate-binary-host-mirror=https://npmmirror.com/mirrors/utf-8-validate/v{version}
utp-native-binary-host-mirror=https://npmmirror.com/mirrors/utp-native/v{version}
zmq-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/zmq-prebuilt/v{version}
bin-mirrors-prefix=https://npmmirror.com/mirrors
canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas
electron-mirror=https://npmmirror.com/mirrors/electron/
electron_custom_dir={{ version }}
electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/

快速开始(纯前端)

OpenSumi 提供了纯前端版本的接入能力,可以让你脱离 node 的环境,在纯浏览器环境下,通过简单的 B/S 架构提供相对完整的 IDE 能力。

在开始运行前,请先保证本地的环境已经安装 Node.js 10.15.x 或以上版本。同时 OpenSumi 依赖一些 Node.js Addon,为了确保这些 Addon 能够被正常编译运行,建议参考 node-gyp 中的安装指南来搭建本地环境。

快速开始

克隆项目 opensumi/ide-startup-lite,进入目录执行以下命令启动 IDE:

$ git clone https://github.com/opensumi/ide-startup-lite.git

$ cd ide-startup-lite

$ npm install # 安装依赖

$ npm run compile:ext-worker # 编译 webworker 插件环境

$ npm run start # 启动

浏览器打开 http://127.0.0.1:8080 进行预览或开发。

一个帮助你快速搭建本地和云端 IDE 的框架

产品案例

支付宝小程序开发工具

小程序开发者工具是支付宝开放平台打造的一站式小程序研发工具,提供了编码、调试、测试、上传、项目管理等功能。不仅支持开发支付宝小程序,相同代码还通用于蚂蚁开放生态,可直接发布至淘宝、钉钉、高德等应用平台。

一个帮助你快速搭建本地和云端 IDE 的框架

淘宝开发者工具

开发者工具 IDE 是辅助淘宝开发者开发商家应用的本地开发工具,包含本地调试、代码编辑、真机预览、发布等功能,覆盖了应用开发的完整流程。

一个帮助你快速搭建本地和云端 IDE 的框架

—END—

开源协议:MIT

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 一个帮助你快速搭建本地和云端 IDE 的框架 https://www.7claw.com/47828.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务