Node.js 安装教程:nvm 版本管理、npm 换源与项目部署实战


Node.js 是跑 JavaScript 服务端程序的基础环境,装博客、跑前端构建、部署 API 服务都离不开它。很多 VPS 教程里第一行就是"先装 Node"。但直接 apt 装的版本往往很老,项目多了版本还互相冲突。这篇文章教你用 nvm 优雅地安装和管理 Node.js 多版本,并解决 npm 装包慢的问题,最后跑通一个真实项目的部署。

一、为什么推荐用 nvm 安装

直接 apt install nodejs 装出来的版本通常落后好几个大版本,而且卸载升级麻烦。nvm(Node Version Manager)是社区最主流的 Node 版本管理工具,优点是:

  • 想装哪个版本就装哪个,多项目多版本互不干扰;
  • 一条命令切换全局 Node 版本;
  • 官方二进制下载,版本新、卸载干净。

二、安装 nvm

用官方脚本安装:

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

国内访问 GitHub 慢的话,用 gitee 镜像:

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

安装脚本会把 nvm 写进 ~/.bashrc,重新加载配置:

source ~/.bashrc

验证是否装好:

nvm --version

如果提示 command not found,可能是网络没拉全,检查 ~/.nvm 目录是否存在,或手动把下面两行加进 ~/.bashrc:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

三、用 nvm 安装 Node.js

查看远端所有可用版本:

nvm ls-remote

查看最新的 LTS(长期支持)版本号:

nvm ls-remote --lts

安装指定大版本的最新版:

nvm install 20        # 安装 Node 20 最新版(当前主流 LTS)
nvm install 22        # 安装 Node 22(较新 LTS)
nvm install 18        # 老项目需要 18 也可以装

也可以直接装最新版:

nvm install node

查看已安装的版本:

nvm ls

切换当前使用的版本:

nvm use 20

设置默认版本(新开终端自动使用):

nvm alias default 20

验证安装结果:

node -v
npm -v

四、npm 换源:彻底告别装包慢

npm 默认从官方源下载包,国内经常卡住。换成淘宝镜像后速度提升巨大。

方式一:直接配置 registry(推荐)

npm config set registry https://registry.npmmirror.com

验证:

npm config get registry

方式二:用 nrm 管理源

npm install -g nrm
nrm ls              # 查看所有源
nrm use npmmirror   # 切换到淘宝镜像

方式三:临时使用(不想改全局配置时)

npm install --registry=https://registry.npmmirror.com

pnpm 和 yarn 同样可以换源:

pnpm config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com

五、跑通第一个 Node 项目

1. 初始化项目

mkdir myapp && cd myapp
npm init -y

2. 安装依赖

npm install express

装好的依赖在 node_modules 目录,包信息记录在 package.json 里。

3. 写个测试服务

新建 app.js:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello from Node.js!');
});

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

启动:

node app.js

访问 http://服务器IP:3000 能看到 Hello 页面,说明 Node 环境完全正常。

六、用 pm2 守护 Node 服务(生产必备)

直接 node app.js 跑的进程,SSH 断开或进程崩溃就没了。用 pm2 让服务常驻、开机自启、崩溃自动重启:

npm install -g pm2

启动服务:

pm2 start app.js --name myapp

常用命令:

pm2 list                  # 查看所有进程
pm2 logs myapp            # 查看日志
pm2 restart myapp         # 重启
pm2 stop myapp            # 停止
pm2 delete myapp          # 删除进程

设置开机自启(会自动生成 systemd 服务):

pm2 startup
pm2 save

七、Nginx 反向代理(可选)

想让服务跑在 80/443 端口并带上域名和 HTTPS,加一层 Nginx 反向代理:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

nginx -t 检查配置后 systemctl reload nginx 生效。

八、卸载与升级 Node

# 卸载指定版本
nvm uninstall 18

# 卸载当前使用的版本
nvm uninstall $(node -v)

# 升级到某大版本最新版
nvm install 22 --reinstall-packages-from=20

九、常见问题排查

1. 提示 nvm: command not found

安装后没 source ~/.bashrc,或 nvm 写入的配置被覆盖。手动补上第二节里的两行配置再 source ~/.bashrc。

2. npm install 卡住或报错 ECONNRESET

网络问题,按第四节换成国内镜像源再装。

3. 提示 EACCES: permission denied

用普通用户装的全局包遇到权限问题,不要直接 sudo npm,改用 nvm 安装的 Node 天然避免这类权限问题;或修复 npm 目录权限:npm config set prefix ~/.npm-global。

4. 切换版本后 npm 命令找不到

nvm use 切换版本后 npm 随 Node 一起切换,如果异常就 nvm install --lts 重装一次 npm。

5. 项目用的语法在新版本报错

老项目锁定的 Node 版本别升级,用 nvm use 18 切回老版本跑,不影响其他项目用新版本。

总结

安装 Node.js 的正确姿势:先用 nvm 装版本管理工具,再用 nvm install 装 Node,配好 npm 国内镜像源,开发环境就绪;生产部署用 pm2 守护进程 + Nginx 反代,服务稳定不掉线。记住 nvm 的四个常用命令(install / use / ls / alias default),以后任何 Node 版本问题都能自己解决。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

服务器挖矿病毒查杀实战:kswapd0、xmrig 进程清理与安全加固全流程

WordPress 加速优化实战:缓存、CDN、PHP-FPM 调优,让网站秒开

评 论
更换验证码