服务器运维:Node.js 安装笔记(Alibaba Cloud Linux 4)

1. 环境检查

复制代码
# 确认系统版本
cat /etc/os-release

# 检查是否已安装 Node.js
which node && node --version
which npm && npm --version

2. 查看可用版本

复制代码
# 查询 dnf 仓库中可用的 Node.js 版本
dnf list available nodejs*

3. 安装 Node.js

复制代码
# 安装 Node.js 和 npm(自动安装依赖)
dnf install -y nodejs nodejs-npm

4. 验证安装

复制代码
# 确认版本和安装路径
node --version    # v22.23.0
npm --version     # 10.9.8
which node        # /usr/bin/node
which npm         # /usr/bin/npm

📌 关键信息速查

项目 值
操作系统 Alibaba Cloud Linux 4 (alinux4)
包管理器 dnf
Node.js 版本 v22.23.0 LTS
npm 版本 10.9.8
安装路径 /usr/bin/node、/usr/bin/npm
全局模块路径 /usr/lib/node_modules

💡 常用运维命令

复制代码
# 升级 Node.js
dnf update -y nodejs nodejs-npm

# 卸载 Node.js
dnf remove -y nodejs nodejs-npm

# 安装全局 npm 包
npm install -g <package-name>

服务器上多版本管理

多版本 Node.js 管理的最佳方案是 nvm(Node Version Manager),它支持按项目自动切换版本、隔离全局包、无需 root 权限。以下是完整操作指南:

1. 安装 nvm

复制代码
# 下载并安装 nvm(官方脚本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# 加载 nvm 到当前终端(或重新登录)
source ~/.bashrc

2. 核心使用命令

复制代码
# 查看可安装的 Node.js 版本
nvm ls-remote --lts

# 安装指定版本(如项目A需要v18,项目B需要v20)
nvm install 18
nvm install 20

# 切换版本
nvm use 18      # 切换到 v18
nvm use 20      # 切换到 v20

# 设置默认版本(新终端自动使用)
nvm alias default 20

# 查看已安装版本
nvm ls

3. 项目级自动切换(关键技巧)

在每个项目根目录创建 .nvmrc 文件,进入目录时自动切换版本:

复制代码
# 项目A:指定 v18
cd /path/to/project-a
echo "18" > .nvmrc
nvm use     # 自动读取 .nvmrc 切换到 v18

# 项目B:指定 v20
cd /path/to/project-b
echo "20" > .nvmrc
nvm use     # 自动切换到 v20

💡 进阶优化 :在 ~/.bashrc 中添加自动切换钩子,进入含 .nvmrc 的目录时自动执行 nvm use,无需手动操作:

复制代码
# 添加到 ~/.bashrc 末尾
autoload_nvm() {
  if [[ -f .nvmrc ]]; then
    nvm use --silent
  fi
}
cd() { builtin cd "$@" && autoload_nvm; }

4. 方案对比(为什么选 nvm)

方案 优点 缺点 推荐场景
nvm 轻量、纯 Shell、项目级 .nvmrc、社区主流 仅支持 Bash/Zsh ✅ 前端多项目开发(首选)
fnm Rust 编写,速度更快 生态略小,.nvmrc 兼容需配置 追求极致性能
Volta 自动锁定版本,集成 yarn/pnpm 安装稍复杂,Windows 支持更好 团队强制统一版本
系统包管理器 简单 ❌ 不支持多版本 单版本生产环境

⚠️ 注意事项

nvm 安装的 Node.js 位于 ~/.nvm/versions/node/,与系统 /usr/bin/node 完全隔离,不会冲突

每个 Node.js 版本有独立的全局包目录,避免依赖污染

卸载某版本:nvm uninstall 18

若之前用 dnf 安装了系统 Node.js,可保留作为 fallback,nvm 优先级更高

已提供 nvm 多版本管理完整方案,包含安装、项目级 .nvmrc 自动切换、方案对比及注意事项。nvm 是前端多版本管理的行业标准,可安全隔离不同项目的 Node.js 版本,建议优先采用。

相关推荐
撩得Android一次心动5 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
cao23335 小时前
关于 x1 y1 等变量名冲突的指正(校对版)
笔记
Demons_kirit7 小时前
CTFHub 信息泄露通关笔记:Git泄露 Log - 教程
笔记·git·网络安全
xhyu618 小时前
【学习笔记】图像质量评估方法 (5.生成图像是否符合用户要求)
笔记·学习·计算机视觉
2601_961146208 小时前
实验室用等离子表面处理设备处理新能源汽车塑料件的一点记录
笔记·汽车·设备
知产xiao_xin8 小时前
专利主体及权利归属
经验分享·笔记·知识产权
学电子她就能回来吗8 小时前
LeetCode Hot 100|普通数组专题学习笔记(零基础版)
笔记·算法·leetcode
2601_965384268 小时前
从微生态与流体力学视角看:“口水臭”的系统级成因与清洁边界
经验分享·笔记
卿卿的产品经理日记9 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
NetX行者12 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust