3.2 安装Node.js环境
🎯 学习目标:掌握在不同操作系统上安装和配置Node.js开发环境
⏱️ 预计时间:25分钟
📊 难度等级:⭐⭐
🤔 为什么需要Node.js?
Node.js是MCP生态系统的核心基础,因为:
- 🔧 MCP SDK主要基于JavaScript/TypeScript
- 📦 丰富的npm包生态
- ⚡ 异步I/O特性适合网络通信
- 🌐 前后端统一的开发体验
- 🔄 活跃的开源社区支持
📋 Node.js版本选择
🎯 推荐版本
版本类型 | 版本号 | 特点 | 推荐指数 | 适用场景 |
---|---|---|---|---|
LTS (Long Term Support) | 20.x | 稳定、长期支持 | ⭐⭐⭐⭐⭐ | 生产环境、学习 |
Current | 21.x | 最新特性 | ⭐⭐⭐ | 尝鲜、开发测试 |
旧LTS | 18.x | 兼容性好 | ⭐⭐⭐⭐ | 企业环境 |
💡 建议:初学者选择当前LTS版本(Node.js 20.x),它提供了最佳的稳定性和功能平衡。
🔍 版本检查
安装前,先检查系统是否已有Node.js:
# 检查Node.js版本
node --version
# 或者
node -v
# 检查npm版本
npm --version
# 或者
npm -v
如果显示版本号,说明已安装。如果版本过旧(< 18.0),建议升级。
🖥️ 不同操作系统的安装方法
🐧 Linux系统安装
方法1:使用包管理器(推荐)
Ubuntu/Debian系统:
# 更新包列表
sudo apt update
# 安装Node.js和npm
sudo apt install -y nodejs npm
# 验证安装
node --version
npm --version
CentOS/RHEL系统:
# 安装Node.js和npm
sudo dnf install -y nodejs npm
# 或者使用yum (旧版本)
sudo yum install -y nodejs npm
# 验证安装
node --version
npm --version
方法2:使用NodeSource仓库(获取最新版本)
# 添加NodeSource仓库(以Node.js 20.x为例)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 安装Node.js
sudo apt-get install -y nodejs
# 验证安装
node --version
方法3:使用Snap(Ubuntu)
# 安装最新LTS版本
sudo snap install node --classic
# 验证安装
node --version
🍎 macOS系统安装
方法1:使用Homebrew(推荐)
如果还没有安装Homebrew:
# 安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装Node.js:
# 安装Node.js(会同时安装npm)
brew install node
# 验证安装
node --version
npm --version
方法2:使用官方安装包
- 访问 Node.js官网
- 下载macOS安装包(.pkg文件)
- 双击运行安装程序
- 按提示完成安装
方法3:使用MacPorts
# 安装Node.js
sudo port install nodejs20 +universal
# 验证安装
node --version
🪟 Windows系统安装
方法1:使用官方安装包(推荐新手)
下载安装包
- 访问 Node.js官网
- 下载Windows安装包(.msi文件)
- 选择LTS版本
运行安装程序
📋 安装选项说明: ✅ Node.js runtime - 必选 ✅ npm package manager - 必选 ✅ Online documentation shortcuts - 可选 ✅ Add to PATH - 必选(重要!)
验证安装
powershell# 打开PowerShell或命令提示符 node --version npm --version
方法2:使用Chocolatey
如果还没有安装Chocolatey:
# 以管理员身份运行PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
安装Node.js:
# 安装Node.js
choco install nodejs
# 验证安装
node --version
npm --version
方法3:使用Winget(Windows 10/11)
# 安装Node.js
winget install OpenJS.NodeJS
# 验证安装
node --version
npm --version
方法4:使用Scoop
# 如果没有Scoop,先安装
iwr -useb get.scoop.sh | iex
# 安装Node.js
scoop install nodejs
# 验证安装
node --version
npm --version
🔧 高级安装选项
📦 使用Node版本管理器
版本管理器允许你在同一系统上安装和切换多个Node.js版本,这对开发非常有用。
NVM (Node Version Manager) - Linux/macOS
安装nvm:
# 下载并安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 重新加载bash配置
source ~/.bashrc
# 或者
source ~/.zshrc
# 验证nvm安装
nvm --version
使用nvm:
# 查看可用的Node.js版本
nvm list-remote
# 安装最新LTS版本
nvm install --lts
# 安装特定版本
nvm install 20.10.0
# 切换版本
nvm use 20.10.0
# 设置默认版本
nvm alias default 20.10.0
# 查看已安装版本
nvm list
nvm-windows - Windows
下载安装
- 访问 nvm-windows GitHub
- 下载最新的nvm-setup.zip
- 解压并运行nvm-setup.exe
使用nvm-windows
powershell# 查看可用版本 nvm list available # 安装LTS版本 nvm install lts # 使用特定版本 nvm use 20.10.0 # 查看已安装版本 nvm list
Volta - 跨平台版本管理器
安装Volta:
# Linux/macOS
curl https://get.volta.sh | bash
# Windows (PowerShell)
iwr https://get.volta.sh | iex
使用Volta:
# 安装Node.js
volta install node@20
# 为项目固定版本
volta pin node@20
# 查看当前版本
volta list
🛠️ 安装后配置
📝 配置npm
设置npm镜像源(中国用户推荐)
由于网络原因,建议配置国内镜像源:
# 查看当前配置
npm config get registry
# 设置淘宝镜像
npm config set registry https://registry.npmmirror.com
# 或者使用cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com
# 验证配置
npm config get registry
配置npm全局包安装路径
Linux/macOS:
# 创建全局包目录
mkdir ~/.npm-global
# 配置npm使用新目录
npm config set prefix '~/.npm-global'
# 添加到PATH(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Windows:
# 创建全局包目录
mkdir $env:USERPROFILE\npm-global
# 配置npm
npm config set prefix $env:USERPROFILE\npm-global
# 添加到PATH环境变量(需要重新打开终端)
$env:PATH += ";$env:USERPROFILE\npm-global"
🔐 权限配置
Linux/macOS权限问题解决
如果遇到权限错误,有几种解决方案:
方案1:使用上面的npm全局目录配置
方案2:修改npm默认目录权限
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
方案3:使用Node版本管理器(最推荐)
# 使用nvm安装的Node.js不会有权限问题
nvm install node
✅ 验证安装
🧪 完整验证脚本
创建一个验证脚本来检查安装:
#!/bin/bash
# verify-nodejs.sh - Node.js安装验证脚本
echo "🔍 Node.js环境验证"
echo "==================="
# 检查Node.js
if command -v node &> /dev/null; then
NODE_VERSION=$(node --version)
echo "✅ Node.js: $NODE_VERSION"
# 检查版本是否合适
NODE_MAJOR=$(echo $NODE_VERSION | cut -d'.' -f1 | sed 's/v//')
if [ $NODE_MAJOR -ge 18 ]; then
echo " 📋 版本符合要求 (>= 18.0)"
else
echo " ⚠️ 版本过低,建议升级到18.0+)"
fi
else
echo "❌ Node.js未安装"
exit 1
fi
# 检查npm
if command -v npm &> /dev/null; then
NPM_VERSION=$(npm --version)
echo "✅ npm: v$NPM_VERSION"
else
echo "❌ npm未安装"
exit 1
fi
# 检查npm配置
NPM_REGISTRY=$(npm config get registry)
echo "📋 npm镜像源: $NPM_REGISTRY"
# 检查权限
echo "🔐 检查npm权限..."
if npm list -g --depth=0 &> /dev/null; then
echo "✅ npm权限正常"
else
echo "⚠️ npm权限可能有问题"
fi
# 测试创建简单项目
echo "🧪 创建测试项目..."
TEST_DIR="/tmp/mcp-test-$$"
mkdir -p $TEST_DIR
cd $TEST_DIR
if npm init -y &> /dev/null; then
echo "✅ 项目创建成功"
rm -rf $TEST_DIR
else
echo "❌ 项目创建失败"
rm -rf $TEST_DIR
exit 1
fi
echo "==================="
echo "🎉 Node.js环境验证通过!"
Windows PowerShell版本:
# verify-nodejs.ps1 - Windows Node.js验证脚本
Write-Host "🔍 Node.js环境验证" -ForegroundColor Green
Write-Host "==================="
# 检查Node.js
try {
$nodeVersion = node --version
Write-Host "✅ Node.js: $nodeVersion" -ForegroundColor Green
# 检查版本
$majorVersion = [int]($nodeVersion -replace 'v(\d+)\..*', '$1')
if ($majorVersion -ge 18) {
Write-Host " 📋 版本符合要求 (>= 18.0)" -ForegroundColor Green
} else {
Write-Host " ⚠️ 版本过低,建议升级到18.0+" -ForegroundColor Yellow
}
} catch {
Write-Host "❌ Node.js未安装" -ForegroundColor Red
exit 1
}
# 检查npm
try {
$npmVersion = npm --version
Write-Host "✅ npm: v$npmVersion" -ForegroundColor Green
} catch {
Write-Host "❌ npm未安装" -ForegroundColor Red
exit 1
}
# 检查npm配置
$npmRegistry = npm config get registry
Write-Host "📋 npm镜像源: $npmRegistry" -ForegroundColor Cyan
# 测试项目创建
Write-Host "🧪 创建测试项目..." -ForegroundColor Yellow
$testDir = "$env:TEMP\mcp-test-$(Get-Random)"
New-Item -ItemType Directory -Path $testDir -Force | Out-Null
Set-Location $testDir
try {
npm init -y | Out-Null
Write-Host "✅ 项目创建成功" -ForegroundColor Green
Remove-Item -Recurse -Force $testDir
} catch {
Write-Host "❌ 项目创建失败" -ForegroundColor Red
Remove-Item -Recurse -Force $testDir -ErrorAction SilentlyContinue
exit 1
}
Write-Host "==================="
Write-Host "🎉 Node.js环境验证通过!" -ForegroundColor Green
🎯 基础功能测试
创建一个简单的MCP相关测试:
// test-mcp-basic.js - 基础MCP环境测试
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('🧪 MCP基础环境测试');
console.log('===================');
// 测试1:检查基础模块
console.log('📋 检查Node.js基础模块...');
try {
const http = require('http');
const crypto = require('crypto');
const events = require('events');
console.log('✅ 基础模块可用');
} catch (error) {
console.log('❌ 基础模块问题:', error.message);
process.exit(1);
}
// 测试2:检查JSON-RPC能力
console.log('📋 检查JSON-RPC处理能力...');
try {
const testRequest = {
jsonrpc: '2.0',
id: 1,
method: 'test',
params: { message: 'hello' }
};
const jsonString = JSON.stringify(testRequest);
const parsed = JSON.parse(jsonString);
if (parsed.jsonrpc === '2.0' && parsed.method === 'test') {
console.log('✅ JSON-RPC处理正常');
} else {
throw new Error('JSON处理异常');
}
} catch (error) {
console.log('❌ JSON-RPC处理问题:', error.message);
process.exit(1);
}
// 测试3:检查异步处理
console.log('📋 检查异步处理能力...');
const testAsync = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('异步处理成功');
}, 100);
});
};
testAsync()
.then(result => {
console.log('✅', result);
console.log('===================');
console.log('🎉 MCP基础环境测试通过!');
})
.catch(error => {
console.log('❌ 异步处理问题:', error.message);
process.exit(1);
});
运行测试:
# 创建测试文件
node test-mcp-basic.js
🚨 常见问题解决
❓ 安装相关问题
Q1: 安装失败,提示"Permission denied"
A: 权限问题,解决方案:
# 方案1:使用版本管理器(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install node
# 方案2:修改npm权限
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
Q2: Windows上PATH环境变量未生效
A: 需要重启终端或重新登录:
# 检查PATH
$env:PATH
# 手动添加(临时)
$env:PATH += ";C:\Program Files\nodejs"
# 永久添加需要在系统设置中配置
Q3: npm速度很慢
A: 配置国内镜像源:
# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com
# 或者使用yarn
npm install -g yarn
yarn config set registry https://registry.npmmirror.com
Q4: 版本冲突问题
A: 使用版本管理器解决:
# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 安装多个版本
nvm install 18
nvm install 20
# 切换版本
nvm use 20
🛠️ 配置优化建议
性能优化
# 增加npm缓存
npm config set cache ~/.npm-cache
# 设置并行安装
npm config set package-lock false # 如果不需要锁定版本
开发体验优化
# 启用npm自动补全
npm completion >> ~/.bashrc
# 安装有用的全局工具
npm install -g nodemon # 自动重启开发服务器
npm install -g http-server # 简单HTTP服务器
npm install -g npm-check-updates # 检查包更新
🎯 本节小结
通过这一小节,你应该已经掌握了:
✅ Node.js版本选择:了解不同版本的特点和适用场景
✅ 多平台安装:掌握Linux、macOS、Windows的安装方法
✅ 版本管理:学会使用nvm等工具管理多个Node.js版本
✅ 安装后配置:npm镜像源、权限配置等优化设置
✅ 环境验证:使用脚本验证安装是否成功
✅ 问题解决:常见安装问题的解决方案
🔗 验证清单
在进入下一小节之前,请确认:
- [ ] Node.js版本 >= 18.0
- [ ] npm正常工作
- [ ] 配置了合适的镜像源
- [ ] 解决了权限问题
- [ ] 通过了基础环境测试
Node.js环境准备完毕!接下来让我们配置Python环境。 🐍