别急着用 apt install nodejs,因为Ubuntu/Debian默认源中Node版本严重滞后(如10.x/12.x),不支持ESM语法和新API,易报错且可能破坏系统稳定性;推荐使用NVM——纯用户态工具,可安全切换多版本、自动加载项目指定版本,安装后需重新打开终端或source配置文件生效。
为什么别急着用 apt install nodejs
Ubuntu/Debian 默认源里的 nodejs 版本往往严重滞后(比如 10.x 或 12.x),而现代项目普遍需要 16.x+,甚至要切 18.x/20.x 做兼容测试。直接用系统包管理器装,大概率遇到 error: Cannot find module 'node:fs' 或 ERR_UNSUPPORTED_ESM_URL_SCHEME 这类报错——不是代码问题,是 Node 版本太老不支持 ESM 语法或新 API。
更麻烦的是:系统级 Node 一旦被其他工具(如 snap 安装的 VS Code、某些桌面环境组件)依赖,强行升级可能破坏系统稳定性。
- 系统包安装的 Node 通常没配
npm可执行文件(得额外装npm包,版本还未必匹配) -
/usr/bin/node权限受系统保护,普通用户无法覆盖或软链切换 - 无法并行安装多个版本,调试跨版本兼容性几乎不可能
用 NVM 装 Node 是当前最稳妥的选择
NVM(Node Version Manager)是纯用户态的 Shell 脚本,所有文件落在 $HOME/.nvm 下,不碰系统路径,卸载只需删目录。它能自由切换版本、设默认版本、按项目自动加载指定版本(配合 .nvmrc)。
安装命令很简单,但注意两点:
- 必须用
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash(推荐 v0.39.7,v0.40.0+ 在某些旧 shell 下有初始化问题) - 执行完后,关闭当前终端再新开一个,或者手动运行
source ~/.bashrc(Zsh 用户用source ~/.zshrc),否则nvm命令不可用 - 验证是否生效:
nvm --version应输出版本号;which nvm应返回/home/xxx/.nvm/nvm.sh类似路径
装完 NVM 后怎么装和切换 Node 版本
装版本前先看可用列表:nvm ls-remote。别盲目装最新版(如 v21.7.3),生产环境建议选 LTS 版本(带 LTS 标记,如 v20.11.1)。
常用操作: