使用 nvm 安装 Node.js:Linux/macOS 版本管理、npm 与 REPL 实操指南
使用 nvm 安装 Node.jsLinux/macOS 版本管理、npm 与 REPL 实操指南【免费下载链接】curriculumThe open curriculum for learning web development项目地址: https://gitcode.com/GitHub_Trending/cu/curriculum本篇技术指南以仓库归档文档 archive/installing_node.md 为主体系统讲解在 Linux 与 macOS 上如何通过 nvmNode 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 连接、监听网络请求。它是异步事件驱动的运行时擅长构建可扩展的网络应用。在开始安装之前需要明确两个名称极其相似但职责不同的工具nvmNode Version ManagerNode 版本管理器。它的作用是安装、切换、升级不同版本的 Node让你可以在同一台机器上管理多个 Node 环境。npmNode Package ManagerNode 包管理器。安装 Node 时会随附安装后续用它来安装 JavaScript 生态中的各类库与工具。这两个工具名字相近、容易被混淆务必仔细区分。用 nvm 安装 Node 非常简单快捷整个过程应该很快完成。安装 nvmLinux 篇Step 0前置依赖要正确安装 nvm首先需要curl工具。在基于 Debian/Ubuntu 的发行版上运行sudo apt install curl仓库中现行的 foundations/javascript_basics/installation_guides/linux.md 还建议先更新软件包列表再安装 curl以确保系统环境处于最新状态sudo apt update sudo apt upgradeStep 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 nvmcommand -v会输出 nvm 可执行命令的路径。如果返回nvm: command not found说明 shell 尚未加载新配置请关闭终端并重新打开或重新 source 配置文件后再试。安装 nvmmacOS 篇在 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执行以在当前会话中加载 nvmexport 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 版本号。node、npm两个命令均可用说明工具链完整就绪。进阶建议npm 供应链安全配置仓库现行课程 foundations/javascript_basics/installing_nodejs.md 在安装完成后还会执行一条 npm v11.10.0 起引入的安全配置npm config set min-release-age3该设置会让 npm 拒绝安装发布时间不足三天的新依赖从而规避新发布包可能存在的供应链攻击风险。这是安装 Node 后值得立即落实的一项安全加固需 npm 版本 ≥ 11.10.0 才支持。使用 Node 交互式控制台REPL安装完成后Node 自带一个交互式控制台REPLRead-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 管装哪个版本的 Nodenpm 管装哪些 JavaScript 包——两者配合使用前者是环境管理后者是依赖管理。【免费下载链接】curriculumThe open curriculum for learning web development项目地址: https://gitcode.com/GitHub_Trending/cu/curriculum创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考