React Development Environment Setup on Windows 11
Published August 9, 2026 · Editorial policy

Developing React applications on Windows 11 has historically carried a reputation for friction, pathing issues, and ecosystem misalignment. However, with the maturity of Windows Subsystem for Linux 2 (WSL 2), native PowerShell advancements, and modern tooling, Windows 11 is now a first-class environment for Tier-1 frontend engineers.
This guide walks you through provisioning an elite, zero-compromise React development environment on Windows 11. We will bypass legacy GUI installers in favor of modern CLI provisioning, configure a lightning-fast Node.js toolchain, and optimize your IDE for maximum productivity.
Prerequisites and System Preparation
Before installing runtimes, ensure your hardware virtualization and operating system settings are optimized for development workloads.
Enable WSL 2 and Hyper-V
WSL 2 runs a lightweight Linux kernel inside Windows, allowing you to run Linux binaries natively alongside Windows applications. This is non-negotiable for running modern frontend build tools, Vite, and native Node modules smoothly.
Open PowerShell as an Administrator and execute the following command:
wsl --install
This command enables the required optional components, downloads the latest Linux kernel, sets WSL 2 as default, and installs Ubuntu by default. Restart your machine when prompted.
Once rebooted, open your newly installed Ubuntu terminal from the Windows Start menu, create your UNIX username and password, and update the package lists:
sudo apt update && sudo apt upgrade -y
Install Windows Terminal
Windows Terminal is a modern, fast, and feature-rich terminal application for command-line users. It supports tabs, split panes, Unicode, themes, and crucially, seamless integration with both PowerShell and WSL 2.
Install it via winget (the Windows Package Manager) in your standard PowerShell prompt:
winget install Microsoft.WindowsTerminal
Open Windows Terminal, go to Settings, and set your default profile to Ubuntu (or keep PowerShell if you prefer native Windows command execution—though WSL 2 is recommended for executing React build scripts).
Installing Node.js via NVM
Never install Node.js globally via a monolithic installer (.msi). As a professional developer, you will work across multiple projects requiring different versions of Node.js and npm/pnpm. We use Node Version Manager (NVM) to manage runtimes.
Setting up NVM-Windows vs NVM for Linux
Since you can develop either inside WSL 2 or natively in Windows, choose your primary workflow. For Tier-1 React development, we recommend running your Node environment inside WSL 2 to avoid cross-platform pathing and permission bugs.
Open your WSL 2 (Ubuntu) terminal and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Close and reopen your terminal, or run the configuration commands outputted by the script to add NVM to your shell profile (~/.bashrc or ~/.zshrc).
Verify the installation:
nvm --version
Installing LTS Node.js and Package Managers
Install the current Long Term Support (LTS) release of Node.js:
nvm install --lts
nvm use --lts
Verify your Node and npm versions:
node -v
npm -v
Modern Package Managers (pnpm / yarn)
While npm is standard, modern React workflows benefit significantly from pnpm due to its strict dependency trees and hard-linking mechanism that saves disk space and installation time.
Install pnpm globally:
npm install -g pnpm
Verify pnpm:
pnpm -v
Configuring Visual Studio Code
Visual Studio Code (VS Code) is the industry standard for React development. To make it perform at an elite level on Windows 11, we need to integrate it deeply with WSL 2 and configure optimal extensions.
Installing VS Code and WSL Extension
Install VS Code via winget:
winget install Microsoft.VisualStudioCode
Open VS Code, navigate to the Extensions marketplace (Ctrl + Shift + X), and install the WSL extension (by Microsoft). This allows VS Code to run client-server architecture where the UI runs on Windows, but the file system watcher, terminal, and language servers run directly inside the Linux kernel (WSL 2).
Essential React Extensions
Install these extensions inside WSL: Ubuntu (VS Code will prompt you to install them in WSL when connected):
- ES7+ React/Redux/React-Native snippets: Provides fast boilerplate generation.
- Prettier - Code formatter: Enforces consistent code style.
- ESLint: Real-time syntax and quality checking.
- Tailwind CSS IntelliSense: Essential if your React stack utilizes Tailwind.
- GitLens: Supercharges the built-in Git capabilities.
Optimizing VS Code Settings (settings.json)
Open your user settings (Ctrl + ,, then click the "Open Settings (JSON)" icon in the top right) and apply these production-grade configurations:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.updateImportsOnFileMove.enabled": "always",
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true
},
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)"
}
Git and GitHub Authentication
Version control is foundational. Setting up Git correctly on Windows 11 prevents newline character issues (CRLF vs LF) and authenticates seamlessly with GitHub via SSH.
Installing and Configuring Git in WSL
While Git can be installed on Windows, installing it inside WSL 2 prevents line-ending translation errors common in multi-platform teams.
Inside your WSL terminal, install Git:
sudo apt install git -y
Configure your global identity:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.autocrlf input
Setting up SSH Keys for GitHub
Generate a secure Ed25519 SSH key:
ssh-keygen -t ed25519 -C "your.email@example.com"
Press Enter to accept default file locations, and optionally add a passphrase.
Start the SSH agent and add your key:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Copy your public key to your clipboard:
cat ~/.ssh/id_ed25519.pub
Log into GitHub, navigate to Settings > SSH and GPG keys > New SSH key, paste your key, and save. Test the connection:
ssh -T git@github.com
Creating and Running Your First React App
With your environment fully provisioned, let's bootstrap a high-performance React application using Vite, the modern standard replacing legacy Create React App (CRA).
Bootstrapping with Vite
Open your WSL 2 terminal, navigate to your development directory (e.g., ~/projects), and scaffold a new React project with TypeScript:
cd ~/projects
pnpm create vite@latest my-react-app --template react-ts
Navigate into the project directory, install dependencies, and start the development server:
cd my-react-app
pnpm install
pnpm dev
Vite will spin up a local development server almost instantaneously (typically under 200ms). Open the provided http://localhost:5173 URL in your Windows browser to verify the installation.
Opening the Project in VS Code
From your WSL terminal inside the project folder, launch VS Code directly into the WSL context:
code .
A new VS Code window will open, connected to WSL 2. You will notice the green indicator in the bottom-left corner reads WSL: Ubuntu. Any terminal you open inside this VS Code instance (`Ctrl + ``) will execute commands directly within your optimized Linux environment.
Advanced Optimizations for Tier-1 Developers
To push your Windows 11 React environment from "functional" to "elite", apply these advanced configurations.
File System Performance Tuning
WSL 2 file performance is blistering fast as long as your project files live inside the Linux file system (/home/username/projects).
- Rule of Thumb: Never store your project files on the Windows mounted drive (
/mnt/c/projects/...) when developing. Cross-OS file system calls drastically degrade file-watching performance and build speeds. Keep all repositories inside the WSL ext4 virtual disk.
Windows Terminal Customization
Enhance your terminal ergonomics by editing your Windows Terminal settings JSON (Ctrl + Shift + ,). Add a custom color scheme (like "Dracula" or "One Half Dark") and set up transparent acrylic styling if desired.
Docker Desktop Integration
If your React app interacts with containerized backends, install Docker Desktop for Windows.
During installation, ensure the "Use the WSL 2 based engine" checkbox is selected. Open Docker Desktop settings, navigate to Resources > WSL Integration, and enable integration with your Ubuntu distribution. This allows you to run docker commands directly from your WSL 2 terminal without installing the Docker daemon inside Linux manually.
Troubleshooting Common Windows/React Pitfalls
Even with a pristine setup, edge cases occur. Here is how to resolve the most common issues:
1. EACCES Permissions Errors with npm/pnpm
If you encounter permission denied errors when running global installs:
- Cause: You likely installed Node.js using an administrative installer rather than NVM.
- Fix: Purge native Node installations, install NVM inside WSL, and manage packages exclusively through NVM-controlled runtimes.
2. Vite HMR (Hot Module Replacement) Not Detecting File Changes
If saving a file in VS Code does not trigger an update in the browser:
- Cause: Your project files are stored on the Windows host (
/mnt/c/...) instead of the WSL Linux home directory. - Fix: Move your repository into
~/projectsinside WSL and reopen the workspace.
3. Git Line Ending Warnings (LF will be replaced by CRLF)
- Cause: Windows and Linux handle carriage returns differently.
- Fix: Ensure your global git config is set correctly:
git config --global core.autocrlf input
Summary Checklist
You have successfully constructed a Tier-1 React development environment on Windows 11:
- Enabled WSL 2 and configured Ubuntu.
- Installed Windows Terminal for an optimized CLI experience.
- Provisioned Node.js LTS and pnpm via NVM inside WSL 2.
- Configured VS Code with the WSL extension and automated linting/formatting.
- Established secure SSH authentication with GitHub.
- Bootstrapped a lightning-fast React + Vite + TypeScript application.
You are now ready to build scalable, high-performance web applications with zero infrastructural overhead.
Related articles

Configuring Git on Windows for Pro Developers

PostgreSQL Windows 11 Setup Guide for Local Dev
