WSL2&Ubuntu前端开发环境配置指南

1,054 阅读4分钟

引言

在前端开发中, 可能会遇到

  • 有些项目在 Windows 环境下跑不起来

  • Windows 下打包构建速度较慢的情况

  • 想跑一些 Shell 脚本

  • 想在 Windows 上跑 Docker

但手头又没有 Mac/Linux 环境

此时可以使用 WSL2 来安装一个 Ubuntu 子系统解决

开启 Windows 相关功能

在 Windows 的任务栏中搜索 启用或关闭 Windows 功能

然后确定, 以下几个功能处于被勾选的状态

  • Hyper-V
  • 适用于 Linux 的 Windows 子系统
  • 虚拟机平台

如果处于未勾选的状态, 将它们勾选上, 然后点击确定, 然后重启电脑

image-20250121115155852.png

安装 Ubuntu

在 Windows 的任务栏中搜索 Microsoft Store

然后搜索 Ubuntu

可以安装 Ubuntu 22.04Ubuntu 24.04, 这两个都是 LTS 版本

image-20250121115250078.png

安装成功之后, 在 Windows 的任务栏中搜索 Ubuntu 然后会自动开始系统安装

升级到 WSL2

WSL1 和 WSL2 的区别
  • WSL1: 基于翻译层, 将 Linux 系统调用转换为 Windows 系统调用
  • WSL2: 基于虚拟机, 运行完整 Linux 内核, 支持更多的 Linux 特性和工具, 比如 docker
下载 WSL2 升级包

首先确定 Windows(10) 系统的版本号大于 1903 版本或更高, 现在新安装的 Windows10 基本上都是 22H2 版本, 大都是可以满足要求的

下载 WSL2 升级包: wslstorestorage.blob.core.windows.net/wslblob/wsl…

进行安装

转换 WSL1 到 WSL2

然后在终端中输入以下命令来查看当前 wsl 的版本

wsl -l -v

如果 Version 显示的是 1, 那就是处于 WSL1 的状态

通过执行命令, 来升级到 WSL2, 其中 Ubuntu-22.04 要换成你自己安装的 Ubuntu 版本的名字

wsl --set-version Ubuntu-22.04 2

然后等待执行完成就可以了

执行结束后再次查看当前当前 wsl 版本

image-20250121115452877.png

配置 ssh (Ubuntu下)

因为众所周知的原因, https 的方式有可能下载速度慢或者连接失败, 通过配置 ssh 的方式会所有改善

执行以下命令, 将 your_email@example.com 换成你自己的邮箱(也可以不换)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

然后一路 Enter

执行以下命令查看 ssh 公钥

cat ~/.ssh/id_rsa.pub

然后将它粘贴到你的 Github / GitLab ssh 中, 这样就可以通过 ssh 的方式来 clone 仓库了

安装 node 环境 (Ubuntu下)

安装 nvm 来控制 node 版本

首先更新源

sudo apt update

clone 仓库

git clone git@github.com:nvm-sh/nvm.git ~/.nvm

更新 nvm 版本

cd ~/.nvm
git checkout `git describe --abbrev=0 --tags` # 切换到最新稳定版本

添加 nvm 到 shell 配置文件中

echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc
source ~/.bashrc

验证 nvm 安装

nvm --version

安装 node 环境

nvm list avalible
nvm install 20.18.1
nvm use 20.18.1

验证 node 安装

node -v

安装 zsh (Ubuntu下)

升级依赖

sudo apt update

安装 zsh

sudo apt install zsh

设置 zsh 为默认 Shell

chsh -s $(which zsh)

配置 nvm

code ~/.zshrc

添加一下内容到 文件末尾

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

安装 oh-my-zsh (Ubuntu下)

官网地址: ohmyz.sh/

clone 仓库

git clone git@github.com:ohmyzsh/ohmyzsh.git ~/.oh-my-zsh

复制配置文件作为个人的配置文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

安装 oh-my-posh (Windows下)

关于 终端Shell

终端

  • 一个程序, 提供了一个窗口
  • 可以输入命令和看到结果

Shell

  • 一个程序, 负责解释和执行你输入的命令
  • 运行在终端里, 处理用户输入的指令
  • 常见的 Shell 有 Bash, Zsh 等
关于 PowerShell 与 PowerShell7

PowerShell

微软在 2006 年推出了 PowerShell, 是一种面向对象的脚本语言, 支持与 .NET 的集成

PowerShell7

跨平台的 PowerShell

安装 Windows Terminal

在 Microsoft Store 中搜索 Windows Terminal, 安装后可以在任务栏中的搜索中输入 终端 来启动它

安装 PowerShell7

直接去 Github 上找到 PowerShell 的最新 Release (正式版) 然后找到对应的版本下载即可: github.com/PowerShell/…

下载后一路 Next 即可完成安装, 安装成功后可以在终端中

选择 PowerShell 即可打开 PowerShell7

其中 Windows PowerShell 是 Windows 自带的 PowerShell6, 注意区分

image-20250121144426294.png

安装 on-my-posh

在 Microsoft Store 中搜索 oh-my-posh, 来安装它

官网地址: ohmyposh.dev/

安装 Nerd Font

因为 on-my-posh 下有一些带图标或者特殊符号的主题, 使用默认的 Consola 字体会显示乱码, 所以需要下一个 Nerd Font

www.nerdfonts.com/font-downlo… 中下载你喜欢的字体, 这里推荐使用 JetBrainsMono Nerd Font

注意: 这里并不需要安装下载回来压缩包中所有的字体, 在里面找到一个最适合自己的即可, 这里推荐只安装 JetBrainsMonoNerdFontMono-Medium 即可

然后记得在终端的设置中, 配置上你的新字体

image-20250121115952072.png

配置 PowerShell7

powerShell7 在启动时会自动加载并执行这个配置文件

首先需要新建这个配置文件, 在终端中执行以下命令

New-Item -Path $PROFILE -Type File -Force

配置这个配置文件

# 使用 vscode 打开
code $PROFILE
# 或使用 记事本 打开
notepad $PROFILE

在打开的配置文件中粘贴以下代码

配置使用默认 oh-my-posh 主题

oh-my-posh init pwsh | Invoke-Expression

配置使用 tokyonight_storm 主题

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\tokyonight_storm.omp.json" | Invoke-Expression

以上两种配置是二选一的

想配置其他主题具体参考: ohmyposh.dev/docs/themes

VSCode 的 WSL 插件

在 vscode 的插件列表中搜索 wsl 然后安装

然后在 Ubuntu 终端下输入 code ./

就可以在当前所在的文件夹下打开 vscode 了

image-20250121145304486.png

这样就实现了在 Windows 下使用 VSCode 在 Ubuntu 环境下开发代码了

WebStorm 的配置

在 WebStorm 中是支持直接访问 WSL2 中的文件系统的, 就像打开你的本地项目一样

image-20250121150002759.png

启动配置

如果你熟悉使用 WebStorm, 你可能会想通过点击这个按钮的方式来启动项目

image-20250121150259002.png

不过在 WSL2 环境下直接点击这个是跑不起来的, 需要配置一下

image-20250121151156315.png

在这里选择上 WSL 中安装的 Ubuntu

image-20250121151324783.png

实际收益

实测, 在没有 turborepo 缓存的情况下打包司内某js工具库

在 Windows 下的耗时为: 3m34s

image-20250121154739047.png

在 Ubuntu(WSL2) 下的耗时为: 2m30s

image-20250121154728151.png

打包司内组件库项目

在 Windows 下耗时: 9m21s

img_v3_02ik_9bc0777a-9678-4042-95c2-363c123634dg.jpg

在 Ubuntu(WSL2) 下耗时为: 2m20s

5QnGdxraio.jpg

打包速度提升非常明显

相关文章参考

www.taurusxin.com/windows-ter…