| 4 min read

Thera 是一款针对移动混合应用开发的编辑器,它适用于通过weex, Luaview,React Native编写的应用,支持调试,语法高亮,代码片段等常用编辑器功能,同时还可以实现真机模拟和调试。实际上它的底层参考了Atom的设计,基于 Electron ,可以通过JS 和 Html + Css来实现编辑器的基本的功能。由于 thera 是经过深度改造,和 atom相差较大,因此我们可以直接修改源码来build 一个自己的浏览器。

首先我们克隆项目:

git clone https://github.com/alibaba/thera

然后进入项目,我们执行 npm install。 安装完成后,我们需要 script下面去执行 npm 包的安装,用于我们 build的依赖

cd script && npm install

接下来,我们需要手动去进行 apm 包管理器的代码下载,因为 Thera 有实现自己的 apm ,所以我们接下来需要执行:

cd apm/node_modules
git clone https://github.com/TheraPackages/apm.git atom-package-manager
cd atom-package-manager
npm install

接下里我们把所有依赖都安装好了,就是最重要的就是开始去执行软件包的生成。

script/build

自己尝试过几次,都是在这里失败的,罗列下可能遇见的问题。

如果看到这里,就表示在开始进行包的下载了。

如果看到这里了,可能你需要确认下上面,手动下载apm那里是否正确执行。

接下来如果你看到npm 无法访问 这个地址。

 install https://atom.io/download/electron/v1.3.13/iojs-v1.3.13.tar.gz failed

接下来我们就需要确保我们的翻墙环境了. 如果开了代理,我们得需要让我们的 命令行工具去支持代理。
我们可以使用 Proxychains 来完成这样的配置。

brew install proxychains-ng

接下来我们需要在proxychains.conf增加我们队 socks的代理配置:

socks5 127.0.0.1:1080

如果我们的 Mac 系统升级到 10.11, 由于 OS X 的新版本引入了一个新机制SIP (System Integrity Protection), 即使 Root 权限也不能对一些二进制进行修改,这些二进制是在 /System,/bin,/sbin,/usr (except /usr/local) 中的。这就影响了 proxychains 的作用范围,不在上述目录中的二进制可以使用 proxychains,而在其中的就不行了。从目前的资料有来,有以下两种解决方法:

  1. 把所有命令都放在~/bin里,把~/bin放在路径里
  2. 关闭 SIP

关闭 SIP需要重新启动下电脑:


重启电脑;
1 在重启的界面上按住 Command 键和 R 键进入 recovery mode;
2 左上角通用工具选择终端;
3 在终端上分别运行:csrutil disable 和 reboot;
4 等电脑重启进入桌面后

这个时候我们执行 proxychains4 script/build ,可以看到各种atom包顺利安装了。

当然你还有可能遇见这样的问题;

这个你可以重新再尝试下。如果看到这个界面就表示build成功了。

更多讲解,可以参考这里

You Can Speak "Hi" to Me in Those Ways