WSL on Windows 10 and Node.js
Linux 的命令行与构建工具一般来说要比 Windows 好用,但 Windows 的用户界面毫无疑问要比 Linux 好用。以往在 Windows 10 上安装 Linux,要么是使用虚拟机,要么是使用双系统,总是无法做到两头兼顾。现在 Windows 10 有了 WSL 技术,使得「二者合一」成为了可能。
WSL
安装
关于如何安装 WSL,可以参考 适用于 Linux 的 Windows 子系统安装指南 (Windows 10),总的来说:
- 将 Windows 10 系统版本升到最高,如果需要安装 WSL 2 则目前来说需要比高更高(体验版);
- 在「启用或关闭 Windows 功能」中,开启「适用于 Linux 的 Windows 子系统」,如果要安装 WSL 2 还需要开启「Hyper-V」;
- 在 Windows 10 应用商店中搜索关键字「Linux」,并选择自己喜欢的发行版下载,比如我选择了「Ubuntu」;
- 下载完成后,在开始菜单中找到它,并点击,会继续安装,过程大概需要几分钟;
- 安装完成后,会提示输入 username 与 password,此即为 Linux 的用户凭据,至此 WSL 已安装完毕。
权限
为新增加的用户赋予 root 权限:
$ sudo vim /etc/sudoers |
在:
# User privilege specification |
下面增加一行:
username ALL=(ALL:ALL) ALL |
这里的 username 即是刚才创建的用户名,:wq!
退出即可。
测试
安装完毕后,可以通过在终端输入 wsl
来进入已安装的 Linux 子系统。Linux 与 Windows 共享文件系统,Windows 的文件可以在 /mnt
下找到:
$ ls /mnt/ |
这里的 c d e f 就分别代表 C/D/E/F 盘。
查看发行版本:
$ lsb_release -a |
Terminal
Windows 10 自带的 CommandLine 和 PowerShell 都不好用,而且丑。可以下载 Windows 新推出的 Windows Terminal,直接在 Windows 10 应用商店就能找到。
Github: Microsoft/Terminal
同样,打开 Windows Terminal 后可以输入 wsl
来进入 Linux 子系统。
Git
安装
有了 WSL 后,开发相关工具环境都不需要在 Windows 下安装了。可以直接使用 Linux 内的程序。以 Git 为例:
- 打开
C:\Users\[username]\AppData\Roaming\
; - 在这里新建一个
bin
文件夹; - 在文件夹内新建一个
git.cmd
文件,输入内容:@echo off
%WINDIR%\System32\bash.exe -c "git %*" - 在 Path 内加入刚刚设置的文件:
C:\Users\[username]\AppData\Roaming\bin\git.cmd
这样一来,就可以直接在 Windows 内访问到安装在 WSL 内的 git 了:
$ git --version |
除了 git 以外,其它程序也都可以如法炮制。
SSH Key
$ git config --global user.name "username" |
如此可以得到公钥。
Node.js
使用 apt get
之前,先替换一下镜像源:
$ sudo vim /etc/apt/sources.list |
这里使用的是 清华大学镜像源。
Node.js & NPM
替换完以后,安装 Node.js 与 NPM:
$ sudo apt-get update |
n
安装 Node.js 版本管理工具 n:
$ sudo npm install -g n |
nrm
安装 NPM 源管理工具 nrm:
$ sudo npm install -g nrm |
Yarn
安装 Yarn:
$ sudo npm install -g yarn |
WebStorm
WebStorm 可以直接与 WSL 完美集成。
- Terminal: File | Settings | Tools | Terminal,将
Shell path
设置为"cmd.exe" /k "wsl.exe"
,这样 Terminal 打开就直接进入了 WSL - Git: File | Settings | Version Control | Git,将
Path to Git excutable
设置为C:\Users\[username]\AppData\Roaming\bin\git.cmd
- Node.js: File | Settings | Languages & Frameworks | Node.js and NPM,
Node interpreter
这里选择Add
可以直接添加 WSL 内的 Node.js,NPM 在\\wsl$\Ubuntu\usr\local\lib\node_modules\npm
,Yarn 在\\wsl$\Ubuntu\usr\local\lib\node_modules\yarn
这样一来,就可以实现 「Windows 的开发界面,Linux 的开发工具」了。
update:
目前发现 Git 的 Commit 功能会报错:
Commit failed with error |
Push 正常。
解决办法:
- 直接在 Terminal 内使用
git commit
; - 升级到 2020.2 版本(目前是 EAP),但是经测试该版本要求 WSL2 才能正常工作,也就是 Windows 也要升级到 EAP 才行。不推荐。