你會在本地搭建 Web 版 VS Code 嗎,看完這一篇你就能輕鬆實現了!
- 2020 年 2 月 21 日
- 筆記
Visual Studio Code 是微軟推出的一款輕量級編輯器,與它一起在市場爭鋒的相似軟體還有 Atom 和 Sublime Text,面世第二年的它只佔據 7% 左右的市場,後來在短短三年時間雄踞了半壁江山,不可謂不哇塞。

近日,微軟在 Ignite 2019 大會上,正式發布了 「Visual Studio Online」。其中包含了微軟託管的 Web 版 VSCode,如今又發布了 VSCode 1.40 ,該版本已經支援開發者直接從 VSCode 的源程式碼編譯出 Web 版 VSCode,本文就將給大家介紹下如何用源程式碼自行構建 VSCode 和在本地運行 Web 版的 VSCode 的方法。
下載 VS Code 源碼
Visual Studio Code 簡稱 VSCode。需要注意的是,平時我們使用的 VSCode 是產品,而下面我們要介紹的是源碼,產品是源碼的構建結果。源碼使用的 MIT License,而產品使用的是 MICROSOFT SOFTWARE LICENSE TERMS。如果你想把 VSCode 用於商用,建議從源碼構建出新的產品,而不是直接使用官網上提供下載鏈接的 VSCode Product。
- 官網地址:https://code.visualstudio.com/
- 源碼地址:https://github.com/microsoft/vscode
我們先把源碼下載下來。
$ git clone --depth 1 https://github.com/microsoft/vscode.git
由於 VSCode 項目過於活躍,提交量非常龐大,到目前為止,已經有 56,092 次提交了,建議在下載源碼的時候加上一句 --depth 1,意思就是只下載最近一次 commit 的程式碼。
安裝相關依賴
在安裝依賴之前,我們不妨稍微分析下 VSCode 的項目結構,
➜ vscode (master) tree -L 1 . ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── ThirdPartyNotices.txt ├── azure-pipelines.yml ├── build/ ├── cglicenses.json ├── cgmanifest.json ├── extensions/ ├── gulpfile.js ├── package.json ├── product.json ├── remote/ ├── resources/ ├── scripts/ ├── src/ ├── test/ ├── tsfmt.json ├── tslint.json └── yarn.lock
未來我們需要重點關注的是 src/ 和 extensions/ 兩個目錄,前者放的是 VSCode 的核心源碼,後者放的是 VSCode 的內置插件。
眼神再晃動一下,應該還會看到幾個熟悉的關鍵詞:build/、gulpfile.js、package.json、tslint.json 和 yarn.lock。由此,我們基本可以斷定:這個倉庫是一個用 TypeScript 開發、用 yarn 管理依賴、用 gulp 進行打包的 Node.js 項目,事實上它也是一個 Electron 項目。
好了,目錄就介紹到這裡了,接著開始進行漫長的依賴安裝。
➜ vscode (master) yarn
執行 yarn 後,VSCode 會幹三件事情:
preinstall腳本對yarn的版本做判斷- 要求必須 >=1.10.1
- 並且只允許使用
yarn來安裝依賴,npm安裝會提示錯誤
- 安裝
package.json中描述的各個依賴- 很多依賴都需要重新編譯,而編譯過程經常會失敗
- 失敗了怎麼辦?看錯誤提示,如果流程沒中斷,就讓它一直跑下去
- 一直卡著,好像不跑了怎麼辦?
ctrl-c終止進程後重新執行yarn
postinstall會逐個安裝build/remote/test/extensions等目錄中的依賴extension的安裝比較特殊,安裝的過程中又會執行updateGrammar腳本- 整個安裝過程十分的慢,可以考慮泡杯咖啡打開電視劇……
執行完 yarn 後,整個安裝並沒有結束。剩下幾步 VSCode 會在你執行 gulp 相關腳本的時候做檢測。倘若資源不存在便會安裝,由於很多資源都在牆外,我們還是分解下動作,分步手動下載:
- 把 Electron 安裝起來
➜ vscode (master) yarn electron
如果下載太慢,建議在命令行打開下代理。
➜ vscode (master) proxychains4 yarn electron
- 把內置的幾個依賴插件安裝起來
➜ vscode (master) yarn download-builtin-extensions
如果你的網路不給力,整個過程或許會耗時很久。我這裡歷時差不多一個小時,終於把依賴下載完成了,這是我安裝依賴花的時間最長的一次。
構建程式
構建客戶端版本
由於啟動一次構建花費的時間太長,1~5min 不等(看機器性能和人品),所以我建議你使用 yarn watch 來構建,它會完成一次構建並監聽文件的變化,後續不用重新構建。
構建完成以後,你就可以執行以下命令打開 VSCode 的客戶端介面了。
➜ vscode (master) ./scripts/code.sh
命令成功執行後,就可以看到以下的介面了。

如果你是 Windows 系統,執行的腳本應該是 ./script/code.bat 。
構建 Web 版本
VSCode 1.40 及以上版本現在已經自帶支援 Web 版本了,在這之前也有一個基於 VSCode 的 Web 版,叫 Code-Server。如果你感興趣可以在「推薦一款支援在瀏覽器上運行 VS Code 的服務端神器 Code-Server」一文中進行了解!
構建 Web 版本的方法非常簡單,只需運行下面的命令即可。
# gulp watch 完成後執行 ➜ vscode (master) yarn web
構建完成後,會自動在瀏覽器窗口中打開地址為 http://localhost:8080/ 的 Web 版本 VSCode。

小結
本文主要通過傻瓜式地教學,給大家演示了下,如何將源碼變成我們熟悉的 VSCode 客戶端,同學們在動手的過程中可能還會遇到各種依賴安裝問題。不要灰心,實在不行就 rm -rf node_modules,然後重試。相信你一定會成功的,加油!
本文轉載自:「小鬍子哥的個人網站」,原文:https://url.cn/5NFuJf8,版權歸原作者所有。歡迎投稿,投稿郵箱:
[email protected]。

