目前在前端开发领域,大家开始逐渐对IDE也重视起来,VSCode自然是用的飞起,而阿里也在搞自己的IDE。 最近,Eclipse基金会刚刚发布了Theia 1.0( https://www.oschina.net/news/114589/eclipse-theia-1-0-released ),号称对标VSCode,这么好玩的东西自然是需要把源码搞一份下来看看。
只是,在Windows上要把跑源码跑起来,似乎并不是clone源码,再yarn一下这么简单,几乎是一把趟坑血泪史。为了造福广大程序员,少掉几根头发,在此发挥国际主义精神,分享一下经验,供各位参考。步骤写的多,有些东西已经安装过的同学,可以跳过。
1、安装nvm:
Theia需要使用node 10,nvm作为node管理神器,则是必备的。 nvm的下载和使用可以参见: https://www.jianshu.com/p/cbf4f76ba0bb
2、安装node:
注意需要node 10版本,笔者这里用的是10.13.0
nvm install 10.13.0
安装完成后,设定当前使用版本为10.13.0
nvm use 10.13.0
由于某些众所周知的原因,接下来需要配置一下一些资源相关的的镜像源。配置文件位于node安装目录(请各位同学自行寻找)的etc目录下,打开npmrc文件(如无可自行新建),添加如下代码:
registry=https://registry.npm.taobao.org/
chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
operadriver_cdnurl=http://npm.taobao.org/mirrors/operadriver
ELECTRON_MIRROR=https://cdn.npm.taobao.org/dist/electron/
其实只有部分是必须的,笔者把自己用的都贴上来了
3、安装yarn和node-gyp
npm i -g yarn
npm i -g node-gyp
4、安装python环境
- 安装anaconda 在Theia安装依赖包和编译的过程中,需要用到python 2.x。大家可以自行安装,不过笔者更推荐用anaconda来做python环境管理。 anaconda下载地址见:https://www.anaconda.com/distribution/
为了提升速度,推荐使用国内的镜像站点:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
目前最新的版本是5.3.1,直接拉到最后,下载即可。
下载完成后,双击exe安装,接下来地球人都懂得,下一步->下一步->完成,就是这么简单。 - 配置anaconda镜像源
为了提升后续环境配置下载速度,需要配置一下国内的镜像源,方法参见:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
提示:.condarc文件一般位于“C:\Users\你的用户名\“目录下 - 创建python2.7环境 打开anaconda navigator,按照图示中箭头指出的菜单,配置python2.7环境
点击create后,静待安装完成即可。 安装完成以后,环境列表中会出来一个py27(这个名字是自己起的,后面会用到)
5、安装Visual Studio 2019
(注意不是VS Code) 下载地址见:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16 在安装向导中,注意选择“使用C++的桌面开发”,如图所示:
选好以后,切到“单个组件”选项卡,勾选上MSVC v140和MSVC v141
其实后面的安装和编译只需要VS2017对应的编译工具,即MSVC v141,但是为了保险起见,把VS2015也选上(磁盘空间大就是任性)
如果不勾选的话,后面在yarn的时候,会报一个找不到VS2017的错误
6、Clone Theia源码
git clone https://github.com/eclipse-theia/theia
这一步简单,地球人都会了
7、安装依赖包
首先,所有命令都需要在anaconda的命令行环境中进行,否则找不到python执行文件。从开始菜单的“Anaconda Prompt”快捷方式即可打开anaconda命令行。
接下来,切到python 2.7环境
activate py27
注意,py27是之前配置环境时自己起的名字。
然后,我们切换到theia目录(具体路径视自己情况而定)
cd theia
这里关键的一步,是需要设置一个环境变量
SET PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
如果不设置的话,在安装依赖包时会卡在安装puppeteer上,原因是它会去下载Chrome,由于某些众所周知的原因,这是一个不可能完全的任务。这里,我们选择跳过去(有梯子的同学可以无视,不过出于洁癖还是不希望它背后给我下个东西)
接下来可以yarn了
yarn
耐心等待依赖包安装完成(是的,这里就是一句话,然而能正常安装并执行脚本,是笔者来回折腾N久的结果,泪)
8、运行源码 终于到了激动人心的时候了,输入
yarn start:electron
哇喔!成功了:
趟坑不易,各位看官觉得有用就点个赞
2020/08/08 补充 theia的post install脚本会去https://open-vsx.org/ 下载必要的插件,这个网站非常不稳定,目测是时不时墙一下
暂时没有较好的替代方案