Skip to main content

使用 NVM 安装 Node.js

安装 nvm

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

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

由于是 github 相关的域名,可能会遇到 dns 的问题,可以手动将本地的备用 DNS 改成 8.8.8.8 解决问题。

例如 Win11 > 网络和 Internet > WLAN > WIFI名称 > DNS 服务器分配 > 编辑 > 手动 > 备用 DNS > 8.8.8.8 下载很慢的话,可以尝试在 /etc/resolv.conf 追加一个 nameserver 8.8.8.8 示例如下:

nameserver 127.0.0.53
nameserver 8.8.8.8
nameserver 114.114.114.114

不要屏蔽默认的 nameserver 127.0.0.53,会导致 apt update 时有 mirrors 相关的网络错误,以及不可预期的网络问题。

改乱了也不怕,重启时会自动恢复默认 nameserver 不用担心。

可能还会遇到 GnuTLS recv error (-110): The TLS connection was non-properly terminated. 原因未明。

安装成功后关闭命令行窗口,重启一个,测试nvm是否安装成功:

nvm -v

如果没有条件重启窗口,可以执行以下命令立即使用 nvm:

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

查看可安装的版本

nvm ls-remote

安装 LTS 稳定版 NodeJS

nvm install --lts
root@LAPTOP-B95050QU:/mnt/c/Users/EDZ# nvm install --lts
Installing latest LTS version.
Downloading and installing node v14.17.4...
Downloading https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz...
################################################################################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.17.4 (npm v6.14.14)
Creating default alias: default -> lts/* (-> v14.17.4)

NPM

装好 NodeJS 就会有 NPM 包管理器了。

NPM 加速

NPM 更换国内源

npm config set registry https://registry.npm.taobao.org

2022年9月更新:默认的 npm 软件源在国内使用已无问题,下载很快,估计官方终于做cdn加速了。 cnpm、淘宝源,将成为历史,感谢这些年的陪伴。

2022/9/23更新: 仍有部分包必须要换淘宝源才不会 network error。

检查全局配置:npm config list --long --global

其它用户共享使用 nvm

前置条件:

  • 用户 A 安装好了 nvm 以及 LTS 版的 node
  • 用户 B 未装过 nvm 及 node
  • 用户 A 的 ~/.nvm 目录权限开放

默认装好 node 以后只有本用户有 nvm/node/npm 等命令,其它用户会报错:bash: line 138: npm: command not found

此时用户 B 可执行一行命令获得 nvm 能力:export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

由于 LTS 版的 node 在用户 A 使用 nvm 时已下载安装过,因此用户 B 可以紧接着直接 nvm use --lts 即可。

最终,用户 B 可以正常使用 nvm/node/npm 等命令了。