因为公司原因,从Mac切换到了win,各种不适应,比如说win下无论哪个shell都无法达到iterm2 + zsh + oh my zsh的体验,所以探究一下使用WSL搭建基础的前端开发环境,看看能不能提升开发的体验。
环境
Windows 11 家庭版 22H2
准备
- 在Microsoft Store下载Windows Terminal,后续可使用该终端应用程序打开WSL子系统。
- 安装Visual Studio Code的WSL拓展。
步骤
安装WSL
在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。
Tips:
- 安装时遇到问题,可以在设置 -> 隐私和安全性 -> 开发者选项 打开开发人员模式,再次尝试。
- 安装过程中遇到了半途卡住的问题,重启后重新执行命令即可安装成功。
更多详细信息查看这里:安装 WSL | Microsoft Learn
根据提示进行安装,默认会安装Ubuntu,安装完成后,在开始菜单 -> 所有应用 找到Ubuntu,或者在Windows Terminal打开Ubuntu,如果可以成功进入Ubuntu终端就表明安装成功了。
安装zsh
执行命令
sudo apt install zsh
或者
sudo apt-get install zsh
将zsh设置为默认shell
chsh -s /bin/zsh
关闭子系统,重新打开,可以看到默认已经是zsh了。
安装oh-my-zsh
根据官方指南,安装方式有以下几种:
Method
Command
curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fetch
sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
选择其一即可,如果因为网络问题无法安装,可以尝试以下操作:
- 使用 git config --global http.sslverify false 关闭ssl校验
- 可能是更广泛的原因,也就是特色网络问题,此时可以考虑替换为加速raw,即使用raw.staticdn.net 或者 raw.fastgit.org 替换 raw.githubusercontent.com,更多资料参考此文章:[githubusercontent、github加速镜像](zhuanlan.zhihu.com/p/420873495)
oh-my-zsh自带很多预置插件和主题等,对我来说已经够用了,想继续折腾的话可以参考这些文章(有很多,随便记录两篇,也许以后我也想折腾了呢):
安装nvm
作为前端开发,基本上是离开nodejs不能活的程度,想快捷切换nodejs版本最热门的工具应该就是nvm了,nvm-windows好不好用就不评价了,根据官网,在WSL安装nvm也是一行代码的事:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
如果遇到了熟悉的网络问题,可以使用gitee的nvm-cn仓库,执行如下命令:
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"
即可安装成功,然后使用nvm安装需要的nodejs版本即可。
实际开发
以上配置好环境后,下一个要解决的问题是,工程放在哪里,目前在我看来有以下几种方式:
- 工程放在Windows目录下,直接使用vscode打开该工程,然后使用WSL的nodejs执行命令。
- WSL下可访问Windows目录,比如C盘在WSL下的路径为 /mnt/c,把工程放在Windows目录下,进入WSL的该目录,执行code命令。
- 工程直接放在WSL的目录下,Windows不可访问(其实可以,只是不那么方便,参考 跨文件系统工作 | Microsoft Learn),进入WSL的该目录,执行code命令。
后两种方式是比较推荐的,一般工作中都是要经常推送到远程仓库的,所以我直接使用了第3种方式。
使用后两种方式,首次执行code命令会在WSL中额外执行一些操作(需要提前在vscode中安装wsl插件),否则在启动工程自动打开Windows下浏览器访问开发页面之类的操作时会直接报错。
如果一切顺利,此时会在Windows下使用vscode打开该工程,可以进行愉快的开发了~
总结
此文章只是简单记录第一次把流程打通的过程,后续也许也有各种坑在等着,毕竟前端的主流还是Mac环境,慢慢探索吧。