前言
最近入坑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