安装 Node.js:使用 nvm 管理 Node 运行时与 npm 包管理器(Odin 前端课程指南)
2026/9/15 22:17:34 网站建设 项目流程

安装 Node.js:使用 nvm 管理 Node 运行时与 npm 包管理器(Odin 前端课程指南)

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

本指南面向正在学习前端开发、即将进入 JavaScript 进阶练习的开发者,系统讲解如何在 Linux 与 macOS 上通过 nvm(Node Version Manager)安装并配置 Node.js 与 npm,以及如何使用 Node 自带的 REPL 交互式控制台进行代码调试。读完本文,你将能够独立完成 Node 环境的搭建、版本切换、供应链安全设置,并掌握nodenpmnvm三个命令的准确区分与日常用法。

Node.js 是什么

Node.js(通常简称为 "Node")是一个 JavaScript 运行时环境(runtime environment),它让你能够在浏览器之外运行 JavaScript 代码。这意味着同一门语言既能在浏览器中驱动页面交互,也能在命令行与服务器端执行脚本。

在本课程(foundations/javascript_basics)接下来的练习中,Node 是必需的运行环境:例如运行测试、执行课程配套的脚本、为后续使用 npm 安装各类 JavaScript 库与工具做准备。事实上,当前仓库自身就依赖 Node 生态:在根目录的 package.json 中可以看到,test脚本通过node --test运行测试,lint/fix脚本则依赖markdownlint-cli2这一 npm 工具,而 markdownlint/ 目录下的*.js规则文件也需要 Node 才能执行——这些都印证了 Node 是现代 JavaScript 开发的基础设施。

在开始安装之前,需要先厘清两个极易混淆的工具:

  • nvm(Node Version Manager):Node 版本管理器,负责安装、切换、升级不同版本的 Node。
  • npm(Node Package Manager):Node 包管理器,随 Node 一起安装,用于安装和管理 JavaScript 生态中的各种库与工具(例如当前仓库 devDependencies 中声明的markdownlint-cli2)。

一句话总结:nvm 管 Node 本身,npm 管 Node 的依赖包

为什么通过 nvm 安装 Node

本课程选择用 nvm 安装 Node,而非直接使用系统包管理器(如apt),原因如下:

  1. 版本切换方便:同一台机器上可共存多个 Node 版本,随时用一条命令切换;
  2. 升级简单:无需重新配置系统环境,nvm install即可获得新版本;
  3. 避免权限问题:nvm 将 Node 安装在用户目录下,不需要sudo提权,也不污染系统全局环境;
  4. 贴合真实开发场景:许多项目会锁定 Node 版本(如.nvmrc),nvm 是社区中最主流的管理方式。

第一步:安装 nvm

nvm 的安装依赖curl与 bash 环境。请根据你的操作系统选择对应指南。

Linux 安装指南

完整的官方步骤见仓库中的 installation_guides/linux.md,核心流程如下:

Step 0:更新系统包并安装 curl

sudo apt update && sudo apt upgrade sudo apt install curl

curl是下载 nvm 安装脚本所必需的工具。

Step 1:下载并安装 nvm

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

该命令会从 nvm 官方仓库拉取指定版本(v0.40.4)的安装脚本并交给 bash 执行。

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 的安装目录(优先使用XDG_CONFIG_HOME,否则使用~/.nvm),然后加载nvm.sh脚本,使nvm命令在当前终端会话中生效。

验证安装

command -v nvm

如果返回nvm: command not found,说明 nvm 尚未加载,请关闭终端并重新打开后再试(重新打开后 shell 会自动读取配置文件)。

macOS 安装指南

完整步骤见 installation_guides/macos.md,核心流程如下:

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

touch ~/.zshrc

然后执行安装:

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

重启终端,或复制粘贴以下命令立即加载:

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 指南额外加载了bash_completion脚本,用于提供nvm相关命令的自动补全。

验证安装

nvm --version

正常会输出已安装的 nvm 版本号。

第二步:使用 nvm 安装 Node LTS

安装完 nvm 后,即可用它安装 Node。请始终选择LTS(Long-Term Support,长期支持)版本,这是 Node 官方维护时间最长、最稳定的版本线,可以避免与后续课程将要安装的各类 npm 包产生兼容性问题。

安装最新 LTS 版本

nvm install --lts

终端会输出大量下载与编译信息。如果安装成功,输出中应能看到类似这样的一行(X 为实际版本号):

Downloading and installing Node vXX.xx.x...

如果没看到,请关闭终端重新打开,再执行一次nvm install --lts(原因同上:nvm 可能未在当前 shell 中加载)。

指定 nvm 使用 LTS 版本

nvm use --lts

该命令告诉 nvm:当你在终端执行node命令时,使用本机已安装的最新 LTS 版本。务必使用 LTS 版本,避免与后续课程安装的依赖包出现不兼容。

验证 Node 与 npm

node -v npm -v
  • node -v应输出类似vXX.xx.x的版本号;
  • npm -v应输出类似XX.xx.x的版本号(npm 随 Node 一同安装,无需单独安装)。

两个命令都能正常输出版本号,即代表 Node 与 npm 安装成功。

补充说明:nvm 安装的多个 Node 版本互不干扰,随时可用nvm install <版本号>安装指定版本、用nvm use <版本号>切换、用nvm ls查看本机已有版本。

第三步:配置 npm 供应链安全设置

npm 在 v11.10.0 版本起引入了一个值得开启的默认安全设置:延迟安装刚发布的新依赖。执行以下命令:

npm config set min-release-age=3

该配置的含义是:npm 将拒绝安装发布不足 3 天的依赖包。这样做的目的是规避"新发布即被投毒"的供应链攻击风险——攻击者常利用新发布或刚被劫持的包在极短时间内传播恶意代码,而社区通常需要几天时间才能发现并处理。开启此设置后,可显著降低这类风险。

如果你安装的 npm 版本早于 v11.10.0,该配置项可能不生效;建议保持 Node/npm 处于 LTS 的最新状态(课程文档在撰写时已按该设置要求执行)。

使用 Node REPL 调试 JavaScript

Node 自带一个REPL(Read-Eval-Print Loop,交互式解释器):在终端中直接运行并编辑 JavaScript 代码,功能类似于浏览器开发者工具中的 Console 面板,非常适合快速调试与浏览器无关的小段代码,而无需每次打开浏览器。

打开 REPL

在终端中单独执行node(不带任何参数):

node

你会看到>提示符,此时即可直接输入 JavaScript 表达式,回车后立即得到求值结果,例如:

> 1 + 2 3 > const greeting = "Hello, Node!"; undefined > greeting 'Hello, Node!'

退出 REPL

输入以下命令即可退出:

.exit

也可以使用快捷键Ctrl + D(EOF)退出。

直接执行脚本文件

除了交互模式,Node 最常见的用法是执行.js脚本文件:

node your_script.js

这与本课程后续练习(如编写并运行独立 JS 程序)的使用方式一致——Node 让 JavaScript 真正脱离了浏览器,成为一门可以随处运行的通用语言。

常见问题排查

现象原因与解决办法
command -v nvmnvm提示 command not foundnvm 脚本未加载。关闭终端重新打开,或手动执行初始化 export 命令(见上文各系统初始化步骤)
nvm install --lts无反应同样先确认 nvm 已加载,再重新执行安装命令
node -v版本与预期不符可能本机存在多个 Node 版本或系统自带的旧版 Node,执行nvm use --lts指定版本
npm -v无输出确认 Node 安装完整;npm 与 Node 捆绑安装,正常安装 Node 后即存在

知识自检

  • 什么是 Node.js?Node.js 是允许 JavaScript 在浏览器之外运行的运行时环境。
  • 应该安装绝对最新的 Node 版本,还是最新的 LTS 版本?应安装并使用最新 LTS(长期支持)版本,以确保与后续课程将安装的 npm 依赖包兼容。
  • nvm 和 npm 有何区别?nvm 管理 Node 版本本身;npm 随 Node 附带,用于安装和管理 JavaScript 依赖包。

相关资源

  • 主课程文档:foundations/javascript_basics/installing_nodejs.md
  • Linux 安装指南:foundations/javascript_basics/installation_guides/linux.md
  • macOS 安装指南:foundations/javascript_basics/installation_guides/macos.md
  • 仓库对 Node/npm 的实际依赖示例:package.json(test脚本使用node --test,依赖markdownlint-cli2
  • 历史版本参考(早期课程文档):archive/installing_node.md

完成上述三步(安装 nvm → 安装并启用 Node LTS → 配置 npm 安全设置)后,你的机器就具备了运行现代 JavaScript 的全部基础能力,可以无缝进入接下来的 JavaScript 基础练习与项目开发了。

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

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

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

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

立即咨询