🚀 VS Code で で入手しましょう!

WSL 2 と Visual Studio Code

2019 年 9 月 3 日 Matt Hernandez 著、@fiveisprime

Windows Subsystem for Linux 2 (WSL 2) の最初のベータ版が公開されてから数ヶ月が経ちました。これについて少しと、これがどのように生産性向上に役立つかをお伝えしたいと思います。私は Windows Insider に登場して以来ベータ版を使用しており、すぐに日常の開発タスクで WSL 2 を排他的に使用するように切り替えました。

WSL 2 での変更点

最初のバージョンでは、システムコールを Windows 上でネイティブに実装しました。システムコールは本質的にカーネルによって提供される関数であり、実装されたコールのみが WSL 環境でサポートされていたことを意味します。初期バージョンの WSL を使用し、実装されていないシステムコールにアクセスしようとするライブラリやツール (たとえば、Go デバッガー) を見つけた場合、これに気付いたかもしれません。より多くの関数のサポートを追加するために段階的な改善が行われましたが、WSL 2 は、完全な Linux カーネルを備えた軽量仮想マシンを同梱することにより、これとはまったく異なるアプローチを採用しています。

その通り、WSL 2 は VM を同梱するようになりましたが、VM から期待されるエクスペリエンスとは異なるものです。従来の VM は起動に時間がかかり、隔離されているように感じるかもしれませんが、WSL 2 は以前のバージョンと変わらずシームレスです。Windows と Linux 間の高度な統合、非常に高速な起動時間、小さなリソースフットプリント、そして VM の構成や管理が一切不要であることを期待してください。

これらすべてが、IO パフォーマンスの向上 (WSL 1 と比較して最大 20 倍高速) と完全なシステムコール機能に繋がります。モジュールのインストールが速くなり、リポジトリのクローン作成が速くなり、お気に入りのライブラリが確実に動作します。パフォーマンスの向上は、Zsh などの代替シェルを実行したり、お気に入りの Node.js バージョン管理ユーティリティを使用したりすることもできることを意味します。

WSL 2 と Visual Studio Code

ここまでの手順に従っている場合は、Windows Insider ビルドにオプトインし、WSL 2 を有効にしていることを確認してください。開始方法の詳細については、WSL 2 のインストール手順を参照してください。

Visual Studio CodeWSL 拡張機能もインストールする必要があります。オプションで、Windows で可能な限り最高のターミナルエクスペリエンスを得るために、ベータ版 Windows Terminal をチェックしてみてください。

WSL extension

Windows Terminal を起動して新しい WSL タブを作成するか、インストールした Linux ディストリビューションを起動して WSL を開きます。コマンドプロンプトまたは PowerShell から直接 Linux に切り替えることもできます。ターミナルに wsl と入力するだけです。これは、WSL が Windows に深く統合されている多くの方法の 1 つにすぎません。WSL をインラインで使用して、次のようなとんでもないこともできます…

WSL cow say example

ターミナルから、WSL から code . を使用して Visual Studio Code を起動します。wsl code . を使用して Linux インラインに切り替え、VS Code を起動してから Windows シェルに戻ることもできます。😏

個人的には、Windows での開発の 100% に WSL 2 を使用しています。Git や Node.js などのすべての開発ツールは、Linux 環境にインストールされています。WSL の VS Code をニーズに合わせてカスタマイズする方法の詳細については、ヒントとテクニックの投稿をご覧ください。

私のセットアップをご覧ください。

Matt's WSL 2 setup

スクリーンショットでは、WSL 2 インスタンスに接続されていること (リモートソースとして左下の 'Ubuntu-18.04' を参照) と、デバッガーから Node.js アプリを起動し、ブレークポイントにあることがわかります。デバッグコンソールで、WSL 拡張機能がすべてのエディターインタラクションを Linux 環境にデフォルト設定する方法を示すために process.platform を入力しました。これを機能させるために必要な構成は一切ありません。WSL 拡張機能から WSL 環境に接続して作業を開始するだけです。また、追加の Git 構成オプションを設定しなくても、行末がデフォルトで LF (ステータスバーに表示) になっていることにも注目してください。オープンソースで Windows を使用している場合、これがなぜ大きなことなのか理解できるでしょう。

お気に入りの拡張機能はすべて動作し、正しい環境をターゲットにしています。たとえば、ソース管理ビューには、WSL 2 にインストールされている Git のバージョンを使用してプロジェクトへの変更が表示されており、Docker 拡張機能は Docker Desktop WSL 2 テクニカルプレビューにアクセスするように構成されています。

これらすべては、WSL 拡張機能を使用することで可能になります。編集、デバッグ、さらには拡張機能まですべて、お気に入りのエディターで期待どおりに動作します。

WSL 2 の利点

要約すると

  • 仮想マシンはリソースを大量に消費し、非常に切り離されたエクスペリエンスを生み出します。
  • 元の WSL は非常によく接続されていましたが、VM と比較してパフォーマンスがかなり劣っていました。
  • WSL 2 は、軽量 VM、完全に接続されたエクスペリエンス、および高性能を備えたハイブリッドアプローチをもたらします。

Visual Studio Code に WSL 拡張機能を追加すると、すべての世界の最高のものが手に入ります。優れたパフォーマンスとシームレスな開発エクスペリエンスを備えたツール用の Linux および Windows 互換性です。

関連資料

WSL で VS Code をセットアップするのに役立つように、WSL での作業チュートリアルがあります。VS Code Remote と、SSH 経由および Docker コンテナー内でも動作する方法の詳細については、VS Code リモート開発ドキュメントの全文を参照してください。

ハッピーリモートコーディング、

Matt Hernandez、VS Code プログラムマネージャー @fiveisprime