Skip to content

基于WSL搭建Node.js开发环境

方跃明 2022-01-20

适用于 Linux 的 Windows 子系统(WSL)可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

以下操作基于Windows 10 企业版 LTSC 21H2版,安装默认的WSL发行版(Ubuntu 20.04 LTS),配置Node.js开发环境。

安装WSL

分安装配置子系统和安装发行版两个大步骤。

子系统

参见 WSL手动安装,若WSL版本过低还需要 下载WSL更新

powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2

发行版

  • 微软商店:搜索“Ubuntu”下载并安装
  • 管理员身份运行PowerShell:wsl --install -d Ubuntu
  • 手动下载WSL发行版以管理员身份运行PowerShell:Add-AppxPackage .\Ubuntu_2004.2020.424.0_x64.appx

常见错误

错误代码解决办法
0x8007019e打开或关闭 Windows 功能勾选适用于 Linux 的 Windows 子系统
0x80040324删除%HOMEPATH%\.wslgconfig

使用WSL

方式操作推荐
VSCode左下角 → 打开远程窗口 → New WSL Window use Distro...
右键菜单Shift + 右键 → 在此处打开Linux Shell
快捷方式开始菜单 → Ubuntu LTS 快捷方式

配置Ubuntu源

这里示例使用Ubuntu阿里源

shell
vi /etc/apt/sources.list

替换默认的 http://archive.ubuntu.com/ 为 mirrors.aliyun.com

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

启用SSH登录

安装SSH服务

shell
sudo passwd root                  # 修改root密码
sudo apt install openssh-server   # 安装SSH服务

启用root用户密码SSH登录

ini
# vi /etc/ssh/sshd_config
PasswordAuthentication yes        # 开启密码验证登录
PermitRootLogin yes               # 开启root用户登录

启动SSH服务

shell
sudo service ssh start

安装Node.js

可根据需要选择以下任一方式安装Node.js。若需要多版本切换,建议使用nvm方式安装。

微软官方亦有WSL Node.js安装文档,供参考。

Node.js二进制包

参见Node.js二进制包安装

shell
wget https://nodejs.org/dist/v16.13.2/node-v16.13.2.tar.gz
sudo tar -xzvf node-v16.13.2.tar.gz -C /usr/local/lib/nodejs
vi ~/.profile # 添加到PATH,增加以下一行
# export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH
. ~/.profile
node --version  # 安装成功输出Node.js版本
npm --version   # 安装成功输出NPM版本

NodeSource

参见NodeSource Ubuntu安装。

shell
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
sudo apt install -y nodejs

nvm

最近 https://nodejs.org 官网无法访问,建议配置源:

shell
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

采用以下命令安装nvm:

shell
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

若以上方式失败,请下载发行包安装nvm:

shell
wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz
tar -xzvf v0.39.1.tar.gz
cd nvm-0.39.1
./install.sh

安装Node.js

shell
nvm install 14.18.3   # 安装Node.js v14.18.3 LTS

遇到 Node.js官网 无法访问的,请自行配置node镜像源、tarballs等:

shell
export NODE_MIRROR=https://npm.taobao.org/mirrors/node
npm config set disturl http://mirrors.cloud.tencent.com/nodejs-release/

安装Yarn

shell
npm install -g yarn   # version 1.x

解决yarn node-sass失败

shell
yarn add node-sass-install # 或
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

安装git

shell
apt install git # 安装
git config --global credential.helper store # 记住密码

安装nginx

shell
sudo apt install nginx    # 安装nginx
sudo service nginx start  # 启动nginx代理服务

安装MySql

shell
sudo apt install mysql    # 默认安装MySQL 8
sudo service mysql start  # 启动MySQL数据库
sudo mysql -uroot         # 首次访问务必root用户权限

安装Python2

WSL Ubuntu默认安装了Python3,如需使用Python2请使用以下命令安装:

shell
sudo apt install python2
python2 --version # 安装成功输出Python2版本号

安装Java

需要使用Java环境的,建议安装OpenJDK和Maven。

shell
sudo apt update
sudo apt install openjdk-jdk-11
java --version    # 安装成功输出Java版本号

Maven

安装Maven

sudo apt install maven
mvn --version     # 安装成功输出Maven版本号

配置仓库地址

Maven安装目录conf/settings.xml或当前用户.m2/setttings.xml

xml
<mirrors>
  <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

Spring Boot项目相关命令

shell
cd your-project
mvn spring-boot:run # 开发
mvn clean           # 清理
mvn compile         # 编译
mvn package         # 打包
mvn install         # 安装
Linux
Node.js