你會在本地搭建 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]
。