前言
最近入坑Deno,第一步肯定是从编译开始,然后踩坑了,记录一下~
常规编译:
1.安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2.安装Xcode打开,同意一下各种不平等条款,再打开运行一下,并切换到当前的Xcode版本。
命令如下:
sudo xcode-select -s /Applications/Xcode.app
3.克隆仓库:
注意:这里必须使用–recurse-submodules参数,原因是deno将多个仓库作为了子模块进行开发,包括deno_std和third_party等等。
git clone --recurse-submodules https://github.com/denoland/deno.git
git clone小窍门:
用colab把代码clone到Google Drive,然后下载回本地,速度快到不敢相信(就算魔法上网,下载也太慢,用colab下载试试)
再从Google drive下载回本地
1+Gb代码,强力推荐使用这种方法
4.在deno源码目录下执行编译命令:
cargo build -vv
编译错误解决
1.卡在进度条不动
原因:编译需要用到魔法上网,但Mac终端默认不走代理
环境初始化需要安装编译 v8 的依赖
使得终端通过vpn联网(想知道更多方法就手动Google)
export http_proxy=http://proxyAddress:port
例如用SS,输入:
export ALL_PROXY=socks5://127.0.0.1:1086
然后输入:
curl -i https://www.google.com
进行测试观察当前终端是否成功使用SS
然后重新执行编译命令:
cargo build -vv
2.Xcode找不到路径的错误:
__main__.SdkError: 'Install Xcode, launch it, accept the license agreement, and run `sudo xcode-select -s /path/to/Xcode.app` to continue.'
原因:找不到Xcode路径
找到你的Xcode路径,然后执行
sudo xcode-select -s /路径/Xcode.app
例如我的Xcode在/Applications,所以执行
sudo xcode-select -s /Applications/Xcode.app
然后重新执行编译命令:
cargo build -vv
3.构建失败
重新执行编译命令试试:
cargo build -vv
4.could not compile deno_typescript
原因:deno里面typescript文件缺失,因为clone的时候没有把Deno第三方依赖下载
解决:
下载typescript源码放到/Users/benny/Coding/deno_develop/deno-master/deno_typescript
5.<urlopen error [Errno 61] Connection refused>
解决更换代理服务器
剩下的事情:静候编译~
编译成功
测试:
# Run:
./target/debug/deno tests/002_hello.ts