使用 nvm 安装 Node.js:Linux/macOS 版本管理、npm 与 REPL 实操指南
2026/9/15 23:14:20 网站建设 项目流程

使用 nvm 安装 Node.js:Linux/macOS 版本管理、npm 与 REPL 实操指南

【免费下载链接】curriculumThe open curriculum for learning web development项目地址: https://gitcode.com/GitHub_Trending/cu/curriculum

本篇技术指南以仓库归档文档 archive/installing_node.md 为主体,系统讲解在 Linux 与 macOS 上如何通过 nvm(Node Version Manager)安装与切换 Node.js 版本、区分 nvm 与 npm 这两个极易混淆的工具,并介绍 Node 交互式控制台(REPL)的使用。读完本文,你将能够独立完成 Node 运行环境的搭建、版本验证与切换,并借助 REPL 在终端中快速调试 JavaScript 代码。仓库中 foundations/javascript_basics/installing_nodejs.md 与 foundations/javascript_basics/installation_guides/linux.md 等文件可作为本文操作步骤的现行对照版本。

什么是 Node.js,为什么用它

Node 是一个 JavaScript 运行时环境(JavaScript runtime),它允许你脱离浏览器运行 JavaScript,这意味着你可以用 JavaScript 编写应用的服务端(server-side)代码。正如仓库中 nodeJS/introduction_to_nodeJS/introduction_what_is_nodeJS.md 所强调的:Node 将 JavaScript 带出了浏览器疆域,使开发者能够用 JavaScript 完成其他服务端语言(如 Ruby、PHP、C#、Python)可以完成的几乎所有工作——例如读写本地文件、创建 HTTP 连接、监听网络请求。它是异步事件驱动的运行时,擅长构建可扩展的网络应用。

在开始安装之前,需要明确两个名称极其相似但职责不同的工具:

  • nvm(Node Version Manager):Node 版本管理器。它的作用是安装、切换、升级不同版本的 Node,让你可以在同一台机器上管理多个 Node 环境。
  • npm(Node Package Manager):Node 包管理器。安装 Node 时会随附安装,后续用它来安装 JavaScript 生态中的各类库与工具。

这两个工具名字相近、容易被混淆,务必仔细区分。用 nvm 安装 Node 非常简单快捷,整个过程应该很快完成。

安装 nvm:Linux 篇

Step 0:前置依赖

要正确安装 nvm,首先需要curl工具。在基于 Debian/Ubuntu 的发行版上,运行:

sudo apt install curl

仓库中现行的 foundations/javascript_basics/installation_guides/linux.md 还建议先更新软件包列表,再安装 curl,以确保系统环境处于最新状态:

sudo apt update && sudo apt upgrade

Step 1:下载并安装 nvm

运行以下命令,脚本会下载并执行 nvm 的官方安装脚本(安装脚本默认写入你的用户主目录下的.nvm目录,而非系统全局目录,因此无需 root 权限):

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

这条命令通过管道将curl下载的安装脚本直接交给bash执行。仓库归档版本使用的 nvm 版本号为v0.35.3,而现行课程 foundations/javascript_basics/installation_guides/linux.md 已更新至v0.40.4;安装新版时可相应替换版本号,安装机制一致。

Step 2:初始化 nvm

安装完成后,终端通常会有初始化提示。如果没有提示(或不想手动从终端复制),可以运行下面两行命令完成初始化:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

对这两行命令的拆解说明:

  • 第一行将NVM_DIR环境变量指向 nvm 的安装目录。如果系统设置了XDG_CONFIG_HOME,则使用${XDG_CONFIG_HOME}/nvm;否则回退到${HOME}/.nvm,这是 nvm 官方脚本的标准行为。
  • 第二行判断$NVM_DIR/nvm.sh文件是否存在(-s检查文件存在且非空),若存在则用.(即 source)将其加载进当前 shell 会话,使nvm命令立即生效。

验证 nvm 是否安装成功:

command -v nvm

command -v会输出 nvm 可执行命令的路径。如果返回nvm: command not found,说明 shell 尚未加载新配置,请关闭终端并重新打开(或重新 source 配置文件)后再试。

安装 nvm:macOS 篇

在 macOS 10.15 及以上版本,默认 shell 已变为 zsh。安装过程中 nvm 会在用户主目录中查找.zshrc文件;默认情况下该文件并不存在,因此需要先创建它:

touch ~/.zshrc

然后运行 nvm 安装脚本:

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

重启终端,或者将以下内容复制粘贴到终端并按Enter执行,以在当前会话中加载 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

与 Linux 版相比,macOS 版多了第三行:加载 nvm 的bash_completion脚本,用于提供 nvm 子命令的 Tab 补全功能。macOS 的NVM_DIR也直接简化为"$HOME/.nvm"

验证安装:

nvm --version

该命令应输出已安装的 nvm 版本号。macOS 上若想了解更完整的安装与更新方式,可参考 nvm 官方文档;仓库现行版本 foundations/javascript_basics/installation_guides/macos.md 中提供了同样完整的步骤。

安装 Node 并设置默认版本

Step 1:安装 LTS 版本

nvm 就绪后,即可安装 Node。运行:

nvm install --lts

--lts表示安装"长期支持"(Long-Term Support)版本,即当前最稳定的 Node 版本。执行后终端会输出大量安装信息,若一切正常,输出中应能看到类似下面的一行:

Downloading and installing Node v16.xx.x...

(具体版本号随 LTS 迭代而变化,以实际输出为准。)如果没有看到类似输出,请关闭终端、重新打开后再次运行nvm install --lts

关于为什么选 LTS 而非最新版,仓库现行课程 foundations/javascript_basics/installing_nodejs.md 给出了明确的理由:必须使用 LTS 版本,以避免与后续课程中将要安装的各类 npm 包产生不兼容问题。这是 Node 生态的通用实践——LTS 版本经过长期维护与验证,生态兼容性最好;而最新的非 LTS 大版本往往刚发布,第三方依赖可能尚未适配。

Step 2:指定使用的 Node 版本

安装完成后,还需要告诉 nvm 在运行node命令时使用哪个版本:

nvm use node

此命令让 nvm 使用刚安装的最新版本。仓库现行版本则更精确地使用:

nvm use --lts

即显式指定使用最近安装的 LTS 版本,语义更明确。设置完成后,验证:

node -v

输出应形如v16.xx.x或对应的 LTS 版本号。看到该输出即表示 Node 安装成功。

安装 Node 的同时,npm 也会随之安装。可以一并验证:

npm -v

输出形如XX.xx.x的 npm 版本号。nodenpm两个命令均可用,说明工具链完整就绪。

进阶建议:npm 供应链安全配置

仓库现行课程 foundations/javascript_basics/installing_nodejs.md 在安装完成后还会执行一条 npm v11.10.0 起引入的安全配置:

npm config set min-release-age=3

该设置会让 npm 拒绝安装发布时间不足三天的新依赖,从而规避新发布包可能存在的供应链攻击风险。这是安装 Node 后值得立即落实的一项安全加固(需 npm 版本 ≥ 11.10.0 才支持)。

使用 Node 交互式控制台(REPL)

安装完成后,Node 自带一个交互式控制台(REPL,Read-Eval-Print Loop)。它允许你在终端中直接运行和编辑 JavaScript 代码,类似于 Ruby 中的 IRB,也类似于浏览器开发者工具中的 Console。这对快速调试或测试一小段不涉及浏览器 API 的代码非常有用——无需每次都打开浏览器。

使用方式:打开终端,直接输入node(不带任何参数)并回车,即进入 REPL 环境。此时你可以逐行输入 JavaScript 表达式,Node 会立即求值并打印结果,非常适合验证语法、测试函数行为或快速做数值计算。

退出 REPL 的方式是输入:

.exit

回车后即返回普通 shell 提示符。

在仓库课程中的后续应用

安装 Node 是仓库课程体系中的一个前置环节:

  • JavaScript 基础阶段通过 foundations/javascript_basics/installing_nodejs.md 完成工具链准备,为后续练习做准备;
  • NodeJS 课程阶段,nodeJS/introduction_to_nodeJS/introduction_what_is_nodeJS.md 会带你用http.createServer写出第一个可运行的 HTTP 服务,nodeJS/introduction_to_nodeJS/getting_started.md 则会引导你使用模块系统、文件系统(fs)、URL 类、事件(EventEmitter)与 npm;
  • 仓库根目录的 package.json 本身也依赖 Node 工具链:其脚本"lint": "markdownlint-cli2""test": "node --test"均需要本地具备 Node.js 运行时才能执行。

也就是说,本文完成的安装步骤是后续一切 Node 编程练习(无论是写服务端代码、跑构建工具,还是运行本仓库的 lint 与测试)的前提。安装完成后即可进入下一阶段的学习。

常见问题排查

现象原因解决办法
command -v nvm返回nvm: command not foundnvm 的初始化脚本尚未加载进当前 shell关闭终端重新打开,或重新执行初始化两行命令
node -v无输出或版本过旧系统 PATH 中可能已存在其他 Node(如 apt 安装的系统 Node)nvm use node(或nvm use --lts)切换,并确保.nvm目录在 PATH 中靠前
nvm install --lts输出中没有Downloading and installing字样shell 会话未正确加载 nvm重启终端后重新执行nvm install --lts
多个 Node 版本并存时版本混乱忘记指定默认版本使用nvm ls查看已装版本,用nvm use <version>临时切换,或nvm alias default <version>设置默认版本

牢记一个核心原则:nvm 管"装哪个版本的 Node",npm 管"装哪些 JavaScript 包"——两者配合使用,前者是环境管理,后者是依赖管理。

【免费下载链接】curriculumThe open curriculum for learning web development项目地址: https://gitcode.com/GitHub_Trending/cu/curriculum

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询