概述
Node.js 几乎是前端开发、后端 API、DevOps 工具的标配运行时。但很多新手踩坑:全局装的包版本混乱,切项目时 npm 版本不兼容,下载依赖慢到怀疑人生。
这篇教程用 nvm 管理 Node.js 版本,配好 npm 镜像,从零搭一个干净的开发环境。全程命令行操作,Mac 和 Linux 通用。
准备工作
你需要的是:
- 一台能上网的电脑或 VPS(macOS / Ubuntu / Debian / CentOS 均可)
- 终端访问权限(Mac 自带 Terminal,Linux 用 ssh 连上去)
- 大概 10 分钟空闲时间
nvm 是 Node Version Manager 的缩写,专门用来管理多个 Node.js 版本。用它装 Node.js,比直接用包管理器更灵活。
安装步骤
第一步:安装 nvm
打开终端,执行以下命令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
装完后关闭终端再重新打开,或者手动加载:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
验证 nvm 是否装好:
nvm --version
# 应该输出 0.40.1 或更高版本
如果提示 command not found,说明环境变量没生效。检查 ~/.bashrc 或 ~/.zshrc 末尾有没有自动写入 nvm 的配置行。
第二步:安装 Node.js
nvm 装好之后,安装 Node.js 就很简单了。推荐装 LTS(长期支持)版本:
nvm install --lts
如果想指定具体版本也可以:
nvm install 20
nvm install 22
查看已安装的版本:
nvm ls
默认使用哪个版本:
nvm alias default 20
这样每次打开新终端都会自动切换到 Node 20。
第三步:配置 npm 国内镜像
npm 默认的包源在国外,下载速度慢。改成国内镜像会快很多。
用淘宝镜像:
npm config set registry https://registry.npmmirror.com
验证配置是否生效:
npm config get registry
# 应该输出 https://registry.npmmirror.com
顺便配一下全局包的存储位置,避免权限问题:
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
把全局 bin 目录加到 PATH:
# Bash 用户
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# Zsh 用户
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
第四步:创建第一个项目
环境配好了,来跑个 Hello World。
mkdir -p ~/projects/node-hello
cd ~/projects/node-hello
初始化项目:
npm init -y
这会生成 package.json 文件。然后写个简单的脚本:
cat > app.js << 'EOF'
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from Node.js!\n');
});
server.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
EOF
启动服务:
node app.js
另开一个终端,用 curl 测试:
curl http://localhost:3000
# 应该输出 Hello from Node.js!
第五步:安装常用开发工具
实际开发中,你还需要这些工具:
# TypeScript 编译器(全局安装)
npm install -g typescript
# ESLint 代码检查
npm install -g eslint
# Prettier 代码格式化
npm install -g prettier
# ts-node 直接运行 TypeScript
npm install -g ts-node
验证安装:
tsc --version
eslint --version
prettier --version
ts-node --version
验证安装
跑几条命令确认一切正常:
# 检查 Node 版本
node --version
# 应该输出 v20.x.x 或 v22.x.x
# 检查 npm 版本
npm --version
# 应该输出 10.x.x 或更高
# 检查 nvm
nvm --version
# 应该输出 0.40.x
# 检查 npm 镜像
npm config get registry
# 应该输出 https://registry.npmmirror.com
# 测试项目运行
cd ~/projects/node-hello
node app.js &
curl http://localhost:3000
kill %1
全部通过就说明环境没问题了。
常见问题
Q: nvm install 后 node 命令找不到?
nvm 装的 Node.js 路径在 ~/.nvm/versions/node/ 下面。运行 which node 看指向哪里。如果不在预期路径,执行 nvm use default 强制切换。
Q: npm install 报 EACCES 权限错误?
不要直接用 sudo 跑 npm。要么修复 npm-global 目录权限:
sudo chown -R $(whoami) ~/.npm-global
要么参考 npm 官方文档 重新配置全局目录。
Q: 换了镜像还是下载慢?
淘宝镜像偶尔不稳定。可以试试腾讯云镜像:
npm config set registry https://mirrors.cloud.tencent.com/npm/
或者华为云:
npm config set registry https://repo.huaweicloud.com/repository/npm/
Q: 项目里有的 Node 版本和项目需要的不一样怎么办?
在项目根目录放一个 .nvmrc 文件:
echo "20" > .nvmrc
然后在项目目录下执行:
nvm use
nvm 会自动切换到 20.x。很多编辑器插件也支持读取 .nvmrc 自动切换。
Q: 想卸载某个 Node 版本?
nvm uninstall 18
nvm 管理的版本互不影响,随便删。
环境搭好了,接下来就是写代码了。Node.js 生态丰富,Express、Fastify、Next.js 随便挑。
你的下一个 Node.js 项目准备用什么框架?