# Настройка VS Code для работы в WSL

WSL - это среда Linux под Windows [подробнее о WSL](https://docs.consulting-plus.com/books/linux-windows/page/cto-takoe-wsl "Что такое WSL").

Для стека **Ubuntu-хостинг + .NET 10 + React + SSH-туннели** VS Code через WSL обычно удобнее, чем запуск проекта напрямую в Windows.

#### 1. Среда разработки совпадает с сервером

Если у вас продакшен на Ubuntu.

Когда VS Code открыт как:

```text
WSL: Ubuntu

```

команды выполняются в Linux:

```bash
dotnet build
npm install
npm run dev

```

То есть почти в той же среде, что и сервер.

Меньше сюрпризов вида:

> "На Windows работает, а на Ubuntu нет".

#### 2. Лучше работает Node.js и React

Многие инструменты фронтенда изначально ориентированы на Linux/macOS.

Например:

- Vite
- Webpack
- ESLint
- npm
- pnpm

обычно чувствуют себя в WSL стабильнее, чем при работе с проектом на диске Windows.

Особенно это заметно на больших проектах.

### 3. Нормальные Linux-инструменты

Сразу доступны:

```bash
grep
find
sed
awk
ssh
rsync
curl

```

Не нужно искать Windows-аналоги.

#### 4. Удобнее работать с сервером

Если вы постоянно используете SSH к VPS.

В WSL можно:

```bash
ssh server
scp file
rsync project

```

без дополнительных утилит.

#### 5. AI-инструменты работают рядом с кодом

Когда VS Code открыт в WSL:

```text
VS Code
  ↓
VS Code Server (в WSL)
  ↓
Continue / Copilot
  ↓
Файлы проекта

```

AI видит проект напрямую в Linux-среде.

#### 6. .NET ближе к реальному продакшену

Если сервер Ubuntu, то:

```bash
dotnet publish

```

в WSL собирает проект в Linux-окружении.

Легче ловить проблемы:

- путей (`/` против `\`)
- регистра файлов
- прав доступа
- конфигурации Linux

#### Когда лучше открывать через Windows

Есть случаи, когда удобнее работать напрямую из Windows:

- WinForms
- WPF
- MAUI под Windows
- COM-компоненты
- специфичные Windows SDK

Но если у вас:

```text
React
ASP.NET Core
Ubuntu

```

то WSL выглядит более естественным вариантом.

#### Важный момент

Если вы используете WSL, держите проект внутри Linux-файловой системы:

```text
/home/devadmin/projects/myapp

```

а не в:

```text
/mnt/c/Users/...

```

На небольших проектах разница может быть незаметна, но на React-проектах с большим количеством файлов производительность и скорость работы инструментов обычно лучше внутри файловой системы WSL.

Для работы в WSL вам нужно выполнить сначала установку VS Code под Windows, скачайте его с официального сайта по [ссылке](https://code.visualstudio.com/download).

После запуска установленного VS Code вам нужно установить расширение WSL. Перейдите на вкладку расширений и в строке поиска наберите:

```
wsl
```

В результатах поиска найдите расширение с названием WSL и примерно таким описанием:

<p class="callout info">Open any folder in the Windows Subsystem for Linux (WSL) and take advantage of Visual Studio Code's full feature set.</p>

Установите это расширение. После установки вы сможете работать с WSL. Для этого нужно сделать к нему подключение.

Нажмите Ctrl-&gt;Alt-&gt;O или кликните в нижнем левом углу по иконке "&gt;&lt;",откроется Remote Menu, в нем выберите "Connect to WSL", после запуска будет загружен и запущен сервер VS Code в WSL, затем вы сможете работать в проводнике с папками в вашем WSL-хранилище.

### Установка плагина Continue и настройка под ним AI-моделей.

\-- Что ниже пока неизвестно, нужно или нет --

Откройте:

```
nano ~/.bashrc
```

добавьте в конец:

```
export ALL_PROXY=socks5://172.31.32.1:1080
export HTTP_PROXY=socks5://172.31.32.1:1080
export HTTPS_PROXY=socks5://172.31.32.1:1080
```

Сохраните:

```
Ctrl+O
Enter
Ctrl+X
```

Применить:

```
source ~/.bashrc
```

##### Для VS Code Remote WSL

В `settings.json`:

```
{
    "http.proxy": "socks5://172.31.32.1:1080",
    "http.proxySupport": "override",
    "http.proxyStrictSSL": false
}
```

После этого:

- Continue
- Copilot
- npm
- dotnet restore
- git clone
- curl

из WSL будут идти через VPS.

---

Ваша итоговая схема теперь:

```
Windows
   |
   | SSH -D 0.0.0.0:1080
   |
   v
VPS (38.242.221.111)
   |
   v
Internet

WSL
   |
   v
172.31.32.1:1080
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--1"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼd ͼr" dir="ltr" id="bkmrk--2"><div class="cm-scroller">  
</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>