Node.js: 安装与环境配置

最后更新:2026-08-26

Bob 是一名前端开发者,刚入职一家科技公司。入职第一天,导师给了他项目仓库地址,克隆下来后运行 npm install 却报了一堆错误——原来公司项目用的是 Node.js 22 LTS,而他本地还是 18 的旧版本。直接升级又怕影响其他老项目,Bob 一时陷入两难。好在导师推荐了 nvm,让他可以在不同 Node.js 版本之间自由切换,每个项目用各自适配的版本,互不干扰。从此 Bob 再也不怕版本冲突了。

你将学到


1. nvm 安装与使用

(1) 为什么需要 nvm

Node.js 版本迭代频繁,不同项目可能依赖不同版本。nvm(Node Version Manager)允许你在同一台机器上安装多个 Node.js 版本,并按需切换,避免版本冲突。

(2) 安装 nvm

macOS / Linux:

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

安装完成后,重启终端或执行:

BASH
source ~/.bashrc

Windows:

Windows 用户可使用 nvm-windows,下载安装包后按向导完成安装。

▶ 示例:(3) 安装与切换 Node.js 版本

BASH
nvm install 22
nvm use 22
nvm alias default 22
命令 说明
nvm install <version> 安装指定版本
nvm use <version> 切换到指定版本
nvm ls 列出已安装的版本
nvm ls-remote 列出可安装的远程版本
nvm alias default <version> 设置默认版本
nvm current 显示当前使用的版本

▶ 示例:安装 Node.js 22 LTS 并切换

BASH
$ nvm install 22
Downloading and installing node v22.11.0...
Now using node v22.11.0 (npm v10.9.0)

$ nvm use 22
Now using node v22.11.0 (npm v10.9.0)

$ nvm current
v22.11.0

(4) Node.js 安装方式对比

方式 优点 缺点 适用场景
官网安装包 简单直观,一键安装 难以切换版本,卸载麻烦 只用一个版本的初学者
nvm 多版本共存,切换灵活 需额外安装 nvm 多项目、多版本的开发者
包管理器 (apt/brew) 系统集成好 版本可能滞后,切换不便 Linux 服务器环境


2. Node.js 安装验证

(1) 检查 Node.js 版本

安装完成后,打开终端输入:

BASH
node --version

输出类似 v22.11.0,表示 Node.js 已正确安装。

(2) 检查 npm 版本

npm 随 Node.js 一起安装,验证方式:

BASH
npm --version

输出类似 10.9.0,表示 npm 可用。

▶ 示例:完整验证流程

BASH
$ node --version
v22.11.0

$ npm --version
10.9.0

$ node -e "console.log('Node.js is working!')"
Node.js is working!

小技巧:node -e 可以直接执行一行 JavaScript 代码,适合快速测试。



3. REPL 交互式环境

(1) 进入与退出 REPL

在终端输入 node 即可进入 REPL(Read-Eval-Print Loop)交互环境:

BASH
node

退出方式:输入 .exit 或按 Ctrl + C 两次。

(2) REPL 常用命令

命令 说明
.help 显示帮助信息
.exit 退出 REPL
.save <file> 保存当前会话到文件
.load <file> 加载文件到会话
.clear 清除当前上下文
.editor 进入编辑器模式(多行编辑)

(3) 多行输入

REPL 会自动检测未闭合的括号、花括号,进入多行输入模式:

JAVASCRIPT
> function add(a, b) {
...   return a + b;
... }
undefined
> add(3, 5)
8

▶ 示例:在 REPL 中快速测试代码

JAVASCRIPT
> const prices = [9.99, 24.5, 3.75, 18.0]
undefined
> prices.filter(p => p > 10).reduce((sum, p) => sum + p, 0)
42.5
> const total = prices.reduce((sum, p) => sum + p, 0)
undefined
> total
56.24
▶ 试一试

4. 运行第一个脚本

(1) 创建 JavaScript 文件

新建一个 hello.js 文件:

JAVASCRIPT
const greeting = 'Hello, Node.js!';
console.log(greeting);

const version = process.version;
console.log(`Running on ${version}`);

▶ 示例:(2) 使用 node 命令运行

BASH
node hello.js

▶ 示例:运行脚本并传递参数

创建 greet.js

JAVASCRIPT
const name = process.argv[2] || 'World';
console.log(`Hello, ${name}!`);
console.log(`Node version: ${process.version}`);
console.log(`Current directory: ${process.cwd()}`);
▶ 试一试

运行:

BASH
$ node greet.js Bob
Hello, Bob!
Node version: v22.11.0
Current directory: /home/bob/projects/demo

(3) process 对象简介

process 是 Node.js 全局对象,无需 require 即可使用,常用属性:

属性 说明
process.version Node.js 版本号
process.argv 命令行参数数组
process.cwd() 当前工作目录
process.env 环境变量对象
process.exit() 退出进程


5. package.json 创建

▶ 示例:(1) 使用 npm init 交互式创建

BASH
npm init

npm 会逐项询问项目名称、版本、描述等信息,最终生成 package.json

▶ 示例:(2) 使用 npm init -y 快速创建

BASH
npm init -y

-y 标志跳过所有提问,使用默认值生成 package.json,适合快速开始。

▶ 示例:npm init -y 生成的 package.json

BASH
$ mkdir my-app && cd my-app
$ npm init -y
JSON
{
  "name": "my-app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

(3) package.json 关键字段说明

字段 说明 示例
name 项目名称,必填,小写无空格 "my-app"
version 语义化版本号,必填 "1.0.0"
description 项目描述 "A sample project"
main 入口文件 "index.js"
scripts 自定义脚本命令 {"start": "node index.js"}
dependencies 生产依赖 {"express": "^4.21.0"}
devDependencies 开发依赖 {"jest": "^29.7.0"}
license 开源协议 "MIT"

(4) 语义化版本范围符号

符号 含义 示例 允许版本
精确匹配 "1.2.3" 仅 1.2.3
^ 兼容大版本 "^1.2.3" ≥1.2.3,<2.0.0
~ 兼容小版本 "~1.2.3" ≥1.2.3,<1.3.0
>= 大于等于 ">=1.2.3" 1.2.3 及以上


6. 常用开发工具

(1) VS Code 安装与配置

VS Code 是最流行的 Node.js 开发编辑器,内置终端和调试器。

(2) 推荐 Node.js 扩展

扩展名称 功能
Node.js Extension Pack Node.js 开发扩展合集
ESLint 代码规范检查
Prettier 代码格式化
Code Runner 快速运行代码片段
npm Intellisense 自动补全 npm 模块名

(3) VS Code 内置终端

使用快捷键 Ctrl + ` 打开内置终端,无需在编辑器和终端之间切换。

▶ 示例:配置 VS Code 调试 Node.js

在项目根目录创建 .vscode/launch.json

JSON
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}/index.js"
    }
  ]
}

F5 即可启动调试。



7. nvm 管理多版本 Node.js 流程

100%
flowchart TD
    A[安装 nvm] --> B[nvm install 22]
    B --> C[nvm install 18]
    C --> D[nvm use 22]
    D --> E{项目切换?}
    E -->|进入项目 A| F[nvm use 22]
    E -->|进入项目 B| G[nvm use 18]
    F --> H[node --version 验证]
    G --> H
    H --> I[运行项目]
    I --> E


8. 综合示例:从零创建 Node.js 项目

以下演示从安装 Node.js 到运行第一个脚本的完整流程:

BASH
# 1. 安装并切换到 Node.js 22 LTS
nvm install 22
nvm use 22

# 2. 验证安装
node --version
npm --version
TEXT 📖 仅展示
v22.11.0
10.9.0
BASH
# 3. 创建项目目录并初始化
mkdir bob-project
cd bob-project
npm init -y

创建 index.js

JAVASCRIPT
const projectName = require('./package.json').name;
const version = process.version;

console.log(`Project: ${projectName}`);
console.log(`Node.js: ${version}`);
console.log(`Directory: ${process.cwd()}`);

const items = ['setup', 'config', 'deploy'];
items.forEach((item, index) => {
  console.log(`Step ${index + 1}: ${item}`);
});

运行项目:

BASH
node index.js
TEXT 📖 仅展示
Project: bob-project
Node.js: v22.11.0
Directory: /home/bob/bob-project
Step 1: setup
Step 2: config
Step 3: deploy

❓ 常见问题

Q nvm 和直接安装 Node.js 有什么区别?
A 直接安装只能使用一个版本,升级后旧版本被覆盖;nvm 允许同时安装多个版本并随时切换,每个项目可以用不同版本,互不干扰。
Q npm init -y 和 npm init 有什么区别?
A npm init 会逐项询问项目名称、版本等信息;npm init -y 跳过所有提问,使用默认值直接生成 package.json,适合快速创建项目。
Q REPL 中如何输入多行代码?
A REPL 会自动检测未闭合的括号或花括号,自动切换到多行模式(显示 ... 提示符),也可以输入 .editor 进入多行编辑器模式。
Q 如何选择 Node.js 版本?
A 优先选择 LTS(长期支持)版本,LTS 提供至少 30 个月的维护保障,适合生产环境;Current 版本包含最新特性但维护周期短,适合体验新功能。
Q package.json 中的 ^ 和 ~ 有什么区别?
A ^ 允许升级到同大版本的最新版本(^1.2.3 允许 1.x.x 但不允许 2.x.x),~ 只允许升级到同小版本的最新版本(~1.2.3 允许 1.2.x 但不允许 1.3.x)。
Q nvm-windows 和 macOS/Linux 的 nvm 命令一样吗?
A 核心命令(install / use / ls)基本一致,但 nvm-windows 是独立实现,部分高级功能可能有差异,建议参考各自文档。
Q 安装 Node.js 后 npm 命令找不到怎么办?
A npm 随 Node.js 一起安装,如果找不到,可能是环境变量未正确配置。尝试重新安装 Node.js 或手动将 Node.js 安装目录添加到系统 PATH 中。

📖 小节


📝 作业

  1. 使用 nvm 安装 Node.js 22 LTS,并将其设为默认版本
  2. 进入 REPL,定义一个函数计算数组中所有偶数的和,并验证结果
  3. 创建一个项目目录,使用 npm init -y 初始化,然后修改 package.json 中的 namedescription 字段
  4. 编写一个脚本 info.js,输出当前 Node.js 版本、操作系统平台(process.platform)和运行时间(process.uptime()
  5. 在 VS Code 中安装 Node.js Extension Pack,配置 launch.json 并成功调试运行一个脚本
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏