本文详细介绍如何在Windows Subsystem for Linux (WSL) 中搭建前端开发环境,包括安装配置WSL、改善命令行界面、安装必要的开发工具如nginx、nodejs等,以及如何与IDE配合实现高效开发。
前言
这篇文章是面向那些想要使用命令行开发,却又不想放弃 windows 的童鞋
工作这几年,虽然也有在服务器上用 vim 开发的经验,但是个人的工作环境一直是 windows,要说为什么,一个是不太喜欢 Mac 稍显封闭的风格(Linux 就不说了,软件太少),再一个这几年 windows 也在不断的改善自己,使自己的产品变得更加方便好用,我喜欢这种不断改变尝试的风格,可能也是情怀的一种吧
为了使自己的工作环境更加方便,前后使用了 git bash , cygwin 等模拟 linux 命令行的工具,但都有这样那样的问题,直到前不久 windows 更新发布了 windows 子系统 WSL(Windows Subsystem for Linux) ,这是微软面向开发者的又一次尝试,毕竟是一个完整的 linux 系统,命令行的体验上比模拟器不知道高到哪里去了,因此我看好这个系统,也将自己的工作中心迁移到 WSL 里,在这里给大家分享一下,希望还坚持在 windows 下的前端er能通过这篇文章打造出自己心目中理想的工作站
1. 安装 WSL
1.1 开启 WSL 功能
首先需要在 windows 的 [ 启用或关闭 Windows 功能 ] 中开启 [ 适用于 Linux 的 Windows 子系统 ]
1.2 下载 Linux
去应用商店搜索 Linux 就会看到目前提供的三个 Linux 子系统,在这里我选择了经典的 Ubuntu
经过上面的步骤,基本命令行工作空间已经搭建起来了,但是我们肯定不能就这么在命令行里写代码,最后还是要回归到 IDE 里面来,那么这就有个很严峻的问题了,虽然 Linux 系统在 windows 下可以运行的很完美了,但说到底还是两个系统,他们的文件类型不同,权限系统也天差地别
我曾经天真的通过 IDE 直接打开 WSL 下的项目,是的,你可以在 windows 文件资源管理器 里找到 WSL 下的所有文件,也可以在 IDE 里打开并编辑,但是之后的事情是个灾难:整个项目的文件权限被更改、新添加的文件在 WSL 下无法展示,甚至 git 命令也因为奇怪的权限问题而不可用了
所以没办法了吗? 办法还是有的,不过路子比较野
还记得10年前(可能没那么远 = =!)我们都在用 windows 系统,而服务器都是 远程 Linux 系统,那时没有现在这么流行的 MacOS ,我们是怎么用 IDE 编程的呢,没错,FTP 或者 SFTP,那我们可不可以换个思路,通过 SFTP 或者 FTP 连接到我们本地的 WSL 呢,答案是肯定的,而且我认为目前只有这么一种方法能够很好的和 WSL 结合起来使用
2018年9月21日更新
在一次查询 VSCode 选项过程中(是的,我打算放弃 webstorm),我发现了广大劳动人民的伟大功绩,没错,现在可以在 WSL 中使用图形化界面,那么我们也可以直接使用 Linux 下的 IDE 来直接开发,这无疑让我们更加接近原生 Linux 开发,也预示着 windows 即将成为最受欢迎的 Linux 发行版(滑稽)
4.1 通过 Linux 下的 IDE 进行开发(推荐)
4.1.1 安装 X-Server
简单的说这个东西就是用于把远程的 Linux 图形展示在本地,当然这里我们展示的是本地的 Linux
if [ $(ps -ax | grep dbus-daemon | wc -l) -eq 1 ]; then
dbus-launch fcitx > /dev/null 2>&1
fi复制代码
如果启动 fcitx 时报如下错误
D-Bus library appears to be incorrectly set up; failed to read machine uuid: UUID file '/etc/machine-id' should contain a hex string of length 32, not length 0, with no other text
复制代码
则使用如下命令
sudo dbus-uuidgen --ensure
调整快捷键
接下来需要调整一下快捷键位设置,不能和 windows 的输入法键位冲突
fcitx-configtool
运行之后会看到一个设置界面
选择 Global Config
这里我把第一行切换输入法的设置改为了 左 Ctrl 键位,和 windows 的 Shift 键位有所区别
如果打开设置界面没有找到谷歌中文输入法,可以用左下角+号添加进来
成功安装后使用 VSCode 的界面
总结
至此,直接在 wsl 内使用 VSCode 开发就基本完成了,接下来一些配置项和其他平台的并无区别,也可以直接用 VSCode 运行命令、打断点等一系列复杂操作了,唯一的问题是在某些 DPI 比较高的电脑上,打开 VSCode 会有一点模糊,这是由于缩放倍数导致的,而如果以正常 DPI 效果打开,又太过于小了...这方面还需要继续优化,但是在代码体验上,无疑要更加接近原生的 Linux 开发,同时也保留了 windows 应用软件的优势
希望我的这篇分享,能让在 windows 下备受煎熬与冷眼的程序员们,可以找到一点光明,也希望微软在未来可以更好的发挥出 WSL 的优势,有问题大家可以敲我,我也仍在继续摸索中
2018年9月21日更新
不知不觉又过了一年,最近忙这忙那,博客也停了好久,但是,奋战在 windows 的工程师们显然没有放弃 WSL ,层出不穷的技术方案,让开发趋于完美,大家都在为更好的在 windows 上开发而努力,而微软也继续更新优化着这一个业务,我相信,一个不断追求进步,勇于改进的软件是不会被时代淘汰的,他将在未来的某个时间节点,以一种厚积薄发的形式再次站在大家的面前(好了好了,新闻联播稿都出来了)