news 2026/4/18 10:56:09

WSL2 完整开发环境配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WSL2 完整开发环境配置指南

Windows 11 + WSL2 + Ubuntu 22.04 全栈开发环境

作为一名全栈开发工程师,我在 Windows 系统上配置 Java + Vue3 开发环境时遇到了诸多挑战。经过实践,我发现通过 WSL2(Windows Subsystem for Linux 2)可以构建一个接近原生 Linux 的开发环境,极大提升开发效率。本文将分享一套可复制、可复用、工程级的初始化方案。


一、为什么选择 WSL2?

  • ✅ 与服务器环境高度一致,避免"本地能跑,服务器翻车"的问题
  • ✅ Docker 和 CI/CD 构建行为完全一致
  • ✅ 系统级工具链(Java、Node、Docker)原生支持
  • ✅ 这套环境配置3-5 年不会过时

二、整体执行顺序

配置过程分为六个步骤,建议按顺序执行,不要跳过

  1. Windows 启用 WSL2
  2. 安装 Ubuntu 22.04
  3. 初始化 Linux 基础环境
  4. 安装 Java / Node / pnpm
  5. 安装 Docker(WSL 原生)
  6. 开发体验增强(zsh / git / 性能)

三、Windows 侧一次性配置

3.1 启用 WSL2

管理员身份打开 PowerShell,执行以下命令:

wsl--install wsl--set-default-version 2 wsl--update

安装完成后,在Microsoft Store搜索并安装:

Ubuntu 22.04 LTS

3.2 配置 WSL2 资源限制(强烈建议)

在 Windows 用户目录下创建配置文件:C:\Users\<你的用户名>\.wslconfig

[wsl2] memory=16GB processors=8 swap=8GB localhostForwarding=true

配置完成后,重启 WSL:

wsl--shutdown

四、Ubuntu 系统初始化

登录 Ubuntu 后,直接复制以下脚本整段执行

# =========================# WSL2 Base Init Script# Ubuntu 22.04# =========================set-eecho"▶ 更新系统"sudoaptupdate&&sudoaptupgrade -yecho"▶ 安装基础工具"sudoaptinstall-ycurlwgetgitunzipzipca-certificates build-essential software-properties-common lsb-release gnupg2 net-toolshtoptree jqecho"▶ 设置时区"sudotimedatectl set-timezone Asia/Shanghaiecho"▶ Git 基础配置"gitconfig --global core.autocrlf inputgitconfig --global core.filemodefalsegitconfig --global pull.rebasefalseecho"▶ 创建项目目录"mkdir-p ~/projectsecho"✔ 基础环境初始化完成"

五、Java 开发环境配置

5.1 安装 SDKMAN(推荐)

SDKMAN 是 Java 生态的版本管理工具,可以轻松切换不同 JDK 版本:

curl-s"https://get.sdkman.io"|bashsource"$HOME/.sdkman/bin/sdkman-init.sh"

5.2 安装 JDK

sdkinstalljava17.0.10-tem sdkinstalljava21.0.2-tem sdk default java17.0.10-tem

验证安装:

java -version

六、Node.js 与 pnpm 配置

6.1 安装 nvm

curl-fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh|bashsource~/.bashrc

6.2 安装 Node LTS 和 pnpm

nvminstall--lts nvm use --lts corepackenablecorepack prepare pnpm@latest --activate

验证安装:

node-vpnpm-v

七、Docker 环境配置

7.1 卸载旧版本

sudoaptremove -ydockerdocker-engine docker.io containerd runc

7.2 安装 Docker Engine

curl-fsSL https://get.docker.com|sh

7.3 权限配置

sudousermod-aGdocker$USERnewgrpdocker

验证安装:

dockerrun hello-worlddockercompose version

八、开发体验增强(可选但推荐)

8.1 安装 Zsh + Oh My Zsh

Zsh 配合 Oh My Zsh 可以大幅提升终端使用体验:

sudoaptinstall-yzshchsh -s$(whichzsh)sh-c"$(curl-fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

推荐安装的插件:

  • zsh-autosuggestions:命令自动补全
  • zsh-syntax-highlighting:语法高亮

九、IDE 正确配置方式

对于IntelliJ IDEAWebStorm

  1. 安装WSL 插件
  2. 打开项目路径:\\wsl$\Ubuntu-22.04\home\<用户名>\projects

⚠️重要提示:不要打开/mnt/c路径下的文件,这会导致严重的性能问题。


十、配置完成后的能力

完成以上配置后,你的开发环境将具备以下特性:

  • ✅ 本地开发环境与 Linux 服务器高度一致
  • ✅ Docker 和 CI/CD 构建行为完全一致
  • ✅ Java 和 Vue 项目不再出现系统差异问题
  • ✅ 这套环境配置3-5 年不会过时

十一、后续优化方向

环境配置完成后,你可以继续优化以下方面:

  1. 构建Spring Boot + Vue + Docker Compose项目模板
  2. 配置IDEA / WebStorm与 WSL 的最佳实践
  3. 将现有项目Docker 化并优化 CI/CD 流程

总结

希望这篇指南能帮助你快速搭建起一套专业的全栈开发环境。如果在配置过程中遇到任何问题,欢迎留言交流!

关键词:WSL2、Ubuntu、Java、Vue3、Docker、全栈开发、开发环境配置

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:47:48

MySQL 索引详解:从原理到实战优化

目录 前言 一、索引是什么&#xff1f;核心价值何在 1. 索引的本质 2. 索引的核心作用 3. 索引的缺点 二、索引结构&#xff1a;为什么 InnoDB 偏爱 BTree&#xff1f; 1. 常见索引结构对比 2. InnoDB 选择 BTree 的核心原因 3. 哈希索引补充说明 三、索引分类&#x…

作者头像 李华
网站建设 2026/4/18 5:40:33

面壁智能发布 MiniCPM-o 4.5,端侧全双工实时音视频交互;海马爸比推出首款 AI 魔法打印机,语音生图+即时打印丨日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「…

作者头像 李华
网站建设 2026/4/18 1:57:55

TypeScript 测验

TypeScript 测验 引言 TypeScript 是由微软开发的一种由 JavaScript 实现的编程语言,它扩展了 JavaScript 的功能,添加了静态类型等特性。TypeScript 在 JavaScript 的基础上提供了类型检查、接口、枚举、泛型等特性,使得开发大型应用程序更加安全、高效。本篇文章将为您准…

作者头像 李华
网站建设 2026/4/18 1:58:00

遵循 “选型-规划-规范安装-严格验证” 全协议读卡器模块支持多种卡片类型(EM/Mifare/CPU卡等)和输出协议(RS485/韦根等),适用于梯控、门禁等场景。故障排查应优先检测电源和通讯状态。

前言&#xff1a;全协议读卡器模块支持多种卡片类型&#xff08;EM/Mifare/CPU卡等&#xff09;和输出协议&#xff08;RS485/韦根等&#xff09;&#xff0c;适用于梯控、门禁等场景。关键使用要点包括&#xff1a;采用屏蔽线缆&#xff08;RVVP40.5mm&#xff09;、保持与干扰…

作者头像 李华
网站建设 2026/4/18 1:59:47

6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)

从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一&#xff0c;但就是这么常用的功能&#xff0c;仍然有很多开发者在这个方面踩坑。 我整理了几种获取配置属性的方式&#xff0c;目的不仅是要让大家学会如何使用&#xff0c;更重要的是弄清配置加载、读取的底层…

作者头像 李华