在 Ubuntu 上遇到 Node.js 兼容性问题,通常集中在以下几类场景。你可以先对照看看属于哪一种,我再给具体解决办法。
Ubuntu 官方源里的 nodejs 经常是 很老的 LTS(比如 12.x、14.x),运行新项目会报错。
node -v 显示 12 / 14SyntaxError: Cannot use import statement用 NodeSource 或 nvm 安装新版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
nvm alias default 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
不同 Node 版本对包管理器有要求。
npm ERR! engine unsupportedERR_PNPM_UNSUPPORTED_ENGINEnpm install -g npm@latest
# 或
corepack enable
如果是老项目:
npm install --engine-strict=false
如 bcrypt、sqlite3、canvas
node-gyp rebuild 失败python not foundmake: command not foundsudo apt update
sudo apt install -y build-essential python3
并用匹配 Node 的版本:
npm rebuild
新 Node(20/22)可能不支持老 glibc。
nvm install 18
npm ERR! code EACCES
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
node -v
npm -v
cat /etc/os-release
如果你能贴出 具体报错信息 / Ubuntu 版本 / Node 版本,我可以直接帮你定位是哪一类兼容性问题。