Visual Studio Code 服务器
2022 年 7 月 7 日,作者:Brigit Murtaugh,@BrigitMurtaugh
远程的现在和未来
注意: 自发布本博客以来,我们对连接 VS Code 服务器的方式进行了更改。有关最新指南,请参阅 2022 年 12 月的博文。
2019 年,我们发布了 远程开发 扩展,它允许您在本地使用 VS Code 在 Windows Subsystem for Linux (WSL)、Docker 容器以及您通过 SSH 管理的远程物理或虚拟计算机上“远程”开发应用程序。2020 年,我们通过 GitHub Codespaces 在远程开发方面又迈出了一步,它允许您在本地或浏览器中使用 VS Code,在由云为您托管和管理的远程虚拟机上开发应用程序。
之所以能够做到这一点,是因为 VS Code 在设计上是一个多进程应用程序。从概念上讲,前端(您键入代码的地方)运行在一个进程中,而后端服务(托管扩展、终端、调试等)运行在另一个独立进程中。
今天,我们发布了使这一切成为可能的后端服务的私有预览版,即“VS Code 服务器”,以及一个易于安装、更新、管理和连接到该服务的 CLI。您可以根据喜好在任何地方安装该服务器(本地开发机器、云中的 VM 等),并通过浏览器使用 VS Code for the Web(也称为 vscode.dev)安全地访问它,而无需配置 SSH 或 https(当然,如果您愿意,也可以这样做 😊)。

入门
由于用于安全连接到 VS Code 服务器的服务处于私有预览阶段,您需要通过 注册表单 请求访问权限。您应该会在几周内收到一封电子邮件,届时就可以开始使用该服务了。
届时,以下是快速上手并投入使用的分步说明
-
在远程计算机(或您想要进行开发的任何地方)上安装 VS Code 服务器。
注意: 不同远程架构的安装命令不同,您可以在 服务器文档 中查阅。本博文将在 Windows Subsystem for Linux (WSL) 实例中设置 VS Code 服务器,该实例在 Windows 上提供了真实的、隔离的 Linux 环境,并可作为我们的“远程”隔离机器。
在 WSL 终端中运行以下命令
wget -O- https://aka.ms/install-vscode-server/setup.sh | sh -
在 WSL 终端中运行以下命令来启动 VS Code 服务器
code-server提示: 运行
code-server -h可查看用于启动和管理服务器的所有可用命令。 -
您的 WSL 发行版将通过安全隧道与 vscode.dev 通信,这使您能够从 vscode.dev 连接到您的计算机,无论您在什么网络上。
系统将提供一个设备代码和 URL,用于将您的 GitHub 帐户认证到 VS Code 服务器的安全隧道服务。
Please enter the code 7644-1186 on https://github.com/login/device通过在提供的身份验证 URL 中输入设备代码来认证到隧道服务。
-
如果这是您首次从该 WSL 实例启动 VS Code 服务器,系统将提示您为连接输入一个名称。CLI 会建议一个有趣的默认“形容词-名词”名称(下方显示示例),您也可以选择接受。
? What would you like to call this machine? (elegant-pitta) > -
在认证并提供机器名称后,CLI 会启动一个服务器实例并生成一个 vscode.dev URL。要连接到您的 WSL 实例,您可以在任何设备上打开此 URL。
注意: 您也可以直接从 vscode.dev 连接到您的 WSL 实例:在 vscode.dev 中打开命令面板 (
F1),然后运行命令 Remote Tunnels: Connect to Remote。
恭喜您,已成功安装并运行 VS Code 服务器!访问生成的 vscode.dev 链接后,连接将完全建立。您的 WSL 发行版的文件应该会显示在 VS Code 资源管理器中,您可以开始从 vscode.dev 对其进行编码。
更大旅程的预览
VS Code 服务器目前处于私有预览阶段。在此早期预览版中,code-server CLI 与您今天用于启动桌面版 VS Code、安装扩展等的 code CLI 不同(在终端中运行 code -h 😊)。这只是朝着完全统一的 code CLI 迈出的第一步,该 CLI 可让您同时管理桌面版和服务器版。
我们非常期待您尝试 VS Code 服务器。您可以在其 文档 和 介绍视频 中了解更多关于它的信息,包括架构、其他命令、实现细节和场景。如果您有任何问题或反馈,请在 VS Code Remote Development GitHub 仓库 中提交问题,您也可以在 @code 上分享您的想法。
编码愉快!
Brigit Murtaugh, @BrigitMurtaugh