<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rare</title>
    <description>The latest articles on Forem by Rare (@rare).</description>
    <link>https://forem.com/rare</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2746%2F0ea26f1c-30af-4a14-bfbe-98ed67b7cd12.png</url>
      <title>Forem: Rare</title>
      <link>https://forem.com/rare</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rare"/>
    <language>en</language>
    <item>
      <title>How to setup WSL 2 for VS Code and Node.js development (2021)</title>
      <dc:creator>Kalle H.</dc:creator>
      <pubDate>Fri, 11 Sep 2020 07:52:01 +0000</pubDate>
      <link>https://forem.com/rare/how-to-setup-wsl-2-for-vs-code-and-node-js-development-4bdg</link>
      <guid>https://forem.com/rare/how-to-setup-wsl-2-for-vs-code-and-node-js-development-4bdg</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WpMlYkjg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fmw2v65l7io1fuaeyh0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WpMlYkjg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fmw2v65l7io1fuaeyh0a.png" alt="Code_-_Insiders_Hqq4ON4eDV"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;This quick guide will demonstrate how to install the new Windows Subsystem for Linux (WSL) 2.&lt;/p&gt;

&lt;p&gt;WSL enables Windows users to run GNU/Linux environment under a Windows host machine. No more virtual machines or dualbooting!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: The guide is written using Ubuntu as the Linux distribution, you may need to tweak the shell commands if want to use a different distro.&lt;/em&gt;&lt;/p&gt;



&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Windows version 1903 or higher (Build 18362 or higher for x64 systems)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ℹ️ Press Win+R and type in &lt;code&gt;winver&lt;/code&gt; to find your version.&lt;/p&gt;



&lt;h2&gt;
  
  
  WSL 2 setup
&lt;/h2&gt;

&lt;p&gt;Run following commands with &lt;strong&gt;elevated&lt;/strong&gt; PowerShell.&lt;/p&gt;
&lt;h4&gt;
  
  
  Installing WSL 2
&lt;/h4&gt;

&lt;p&gt;⁣1. Install WSL 1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;dism.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/enable-feature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/featurename:Microsoft-Windows-Subsystem-Linux&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/norestart&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⁣2. Enable the "Virtual Machine Platform" optional feature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;dism.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/enable-feature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/featurename:VirtualMachinePlatform&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/norestart&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⁣3. Restart your machine.&lt;/p&gt;

&lt;p&gt;⁣4. After restarting set your WSL version to 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--set-default-version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Picking distro
&lt;/h4&gt;

&lt;p&gt;Go to the Microsoft store and pick &amp;amp; install distro you like. I chose &lt;a href="https://www.microsoft.com/store/apps/9pjn388hp8c9"&gt;Ubuntu 20.04 LTS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The following Linux distributions are available as of now (10th Sep. 2020):&lt;/p&gt;

&lt;p&gt;
  Full list of distributions
  &lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9pjn388hp8c9"&gt;Ubuntu 16.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9N9TNGVNDL3Q"&gt;Ubuntu 18.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9n6svws3rx71"&gt;Ubuntu 20.04 LTS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9NJFZK00FGKV"&gt;openSUSE Leap 15.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9MZ3D1TRP8T1"&gt;SUSE Linux Enterprise Server 12 SP5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9PN498VPMF3Z"&gt;SUSE Linux Enterprise Server 15 SP1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9PKR34TNCV07"&gt;Kali Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9MSVKQC78PK6"&gt;Debian GNU/Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9n6gdm4k2hnc"&gt;Fedora Remix for WSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9NV1GV1PXZ6P"&gt;Pengwin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/store/apps/9N8LP0X93VCP"&gt;Pengwin Enterprise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.microsoft.com/store/apps/9p804crf0395"&gt;Alpine WSL&lt;/a&gt;

&lt;/li&gt;
&lt;/ul&gt;




&lt;/p&gt;
&lt;p&gt;There are also 3rd party distributions for WSL available. &lt;a href="https://github.com/yuk7/ArchWSL"&gt;ArchWSL&lt;/a&gt; is one of them.&lt;/p&gt;



&lt;h2&gt;
  
  
  Installing Node.js for WSL
&lt;/h2&gt;

&lt;p&gt;😕 I ran into issues using NVM with WSL, we'll be installing Node.js the manual way.&lt;/p&gt;

&lt;p&gt;⁣1. Open WSL by hitting Win+R and typing: &lt;code&gt;wsl&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;⁣2. Run following commands (You may want to up the version number):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://deb.nodesource.com/setup_14.x | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nodejs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⁣3. You can verify the installation by typing &lt;code&gt;node -v&lt;/code&gt;&lt;/p&gt;



&lt;h2&gt;
  
  
  Setting up VS Code
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl"&gt;Remote - WSL&lt;/a&gt; extension.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Press the icon on bottom left to start new WSL session&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cxwqlLlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u3tottj024nw7nuvllta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cxwqlLlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u3tottj024nw7nuvllta.png" alt="firefox_bxmCokZGiH"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That's it! :)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;



&lt;h2&gt;
  
  
  Bonus ⭐
&lt;/h2&gt;
&lt;h4&gt;
  
  
  Install &lt;code&gt;yarn&lt;/code&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; yarn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Install &lt;code&gt;ohmyzsh&lt;/code&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You also need to change the default VS Code shell, press Ctrl+Shift+P:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WAeKfyNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qokrx4sjdaf2n3ikmuka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WAeKfyNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qokrx4sjdaf2n3ikmuka.png" alt="Code_-_Insiders_UIwhZNweek"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7C8vB0LE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e3qvzrcin8atat3ndp49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7C8vB0LE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e3qvzrcin8atat3ndp49.png" alt="Code_-_Insiders_mKcIgqE13e"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>vscode</category>
      <category>wsl</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
