wsl未运行时vs code远程连接会卡在“正在连接…”,需先用wsl -d ubuntu启动发行版;remote-wsl插件仅支持windows原生版vs code;终端需手动切换至wsl bash;npm应避免使用/mnt/c路径,缓存和项目须置于wsl原生文件系统。

WSL 本地没启动就点远程连接,vscode 会卡在“正在连接…”
WSL 后台不是常驻服务,关机或休眠后默认不运行。VS Code 的 Remote-WSL 插件依赖 WSL 实例处于 running 状态,否则连不上,也看不到 \wsl$ 下的文件系统。
- 先打开 PowerShell 或 CMD,执行
wsl -l -v确认发行版状态,看到Running才行 - 如果显示
Stopped,运行wsl -d Ubuntu(把Ubuntu换成你实际的发行版名)手动唤醒 - 不想每次手动启?在 Windows 设置 → 电源 → 关闭快速启动(否则 WSL 可能被冻结)
Remote-WSL 插件装了但没反应,Ctrl+Shift+P 里搜不到 Remote-WSL: New Window
插件本身没问题,但 VS Code 必须是 Windows 版本(x64 或 ARM64),不能是 Web 版、Linux 版或通过 Microsoft Store 安装的“打包版”——后者权限受限,无法调用 WSL 接口。
- 去官网下载
VSCodeUserSetup-x64.exe或.exe独立安装包,重装一次最稳妥 - 确认插件已启用:打开 Extensions 面板,搜索
Remote - WSL,确保右下角是“Enable”而非“Disabled” - 插件更新滞后时,手动卸载再重装,别信自动更新提示
打开项目后终端还是 Windows PowerShell,不是 WSL bash
VS Code 默认终端不会随 Remote-WSL 自动切换。即使你在 WSL 环境里打开文件夹,新终端仍继承宿主系统 Shell。
- 按
Ctrl+Shift+`打开终端后,点击右上角+旁边的下拉箭头,选bash或zsh(取决于你 WSL 里配的默认 shell) - 想永久生效?在 WSL 窗口里打开命令面板(
Ctrl+Shift+P),运行Terminal: Select Default Profile,再选WSL Bash - 注意:这个设置只对当前窗口有效;跨窗口/重启后需重新选,目前无全局默认 WSL 终端的配置项
npm install 在 WSL 里慢、卡住,或报 ENOSPC 错误
WSL 默认磁盘空间有限(尤其旧版 WSL1),且 npm 缓存路径若落在 Windows 文件系统(比如 /mnt/c/...)上,I/O 性能极差,还容易触发权限/长路径问题。
- 把项目放 WSL 原生路径下,例如
~/projects/myapp,**绝不要放/mnt/c/Users/xxx/...** - 检查磁盘空间:
df -h,如果/使用率超 90%,运行wsl --shutdown后重启,或手动清理~/.npm和node_modules - 提速 npm:在 WSL 中执行
npm config set cache ~/.npm-cache,确保缓存也在 Linux 文件系统内
WSL 开发真正卡点不在连接,而在路径归属和资源隔离——Windows 和 Linux 文件系统混用时,看似能访问,实则性能崩、权限错、锁文件失效。宁可多 cd 几次进 ~,也别图方便拖文件到 /mnt/c。











