Visual Studio Code で WSL 2 を使用する
2019年9月3日 Matt Hernandez (@fiveisprime)
Windows Subsystem for Linux 2 (WSL 2) の最初のベータ版がリリースされてから数か月が経ちましたので、これがどのようなもので、どのように生産性を向上させるのに役立つかについて少しお話ししたいと思います。私はWindows Insiders に登場して以来ベータ版を使用しており、すぐに日常の開発タスクで 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 Insiders ビルドにオプトインし、WSL 2 を有効にしていることを確認してください。開始方法の詳細については、WSL 2 のインストール手順を参照してください。
また、Visual Studio Code と WSL 拡張機能をインストールする必要があります。オプションとして、Windows で最高のターミナル体験を得るために、ベータ版 Windows Terminal をチェックしてください。
Windows Terminal を起動して新しい WSL タブを作成するか、インストールした Linux ディストリビューションを起動して WSL を開きます。コマンドプロンプトや PowerShell から直接ターミナルで wsl
と入力して Linux に切り替えることもできます。これは、WSL が Windows に深く統合されている多くの方法の 1 つにすぎません。また、WSL をインラインで使用して、次のようなとんでもないこともできます…
ターミナルから、WSL から code .
を使用して Visual Studio Code を起動します。wsl code .
を使用してインラインで Linux に切り替え、VS Code を起動し、Windows シェルに戻ることもできます。😏
個人的には、Windows での開発の 100% を WSL 2 で行っています。Git や Node.js などのすべての開発ツールは Linux 環境にインストールされています。WSL での VS Code をニーズに合わせてカスタマイズする方法の詳細については、この ヒントとコツの投稿 をチェックしてください。
私の設定は次のようになっています。
スクリーンショットでは、私が WSL 2 インスタンスに接続していること (左下のリモートソースとして 'Ubuntu-18.04' を参照)、デバッガーから Node.js アプリを起動し、ブレークポイントにあることがわかります。デバッグコンソールで process.platform
を入力し、WSL 拡張機能がすべてのエディターの対話を Linux 環境にデフォルト設定する方法を示しています。これを機能させるために必要な設定はまったくありません。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