Ubuntu 上 Node.js 报错 的原因很多,不能一概而论。下面我按最常见场景给你系统梳理一下,并给出排查思路。你可以对照看看属于哪一类。
node: command not found原因
PATH 中解决
node -v
如果没版本号:
sudo apt update
sudo apt install nodejs npm
✅ 推荐方式(更稳):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
npm: command not found原因
npm 没安装解决
sudo apt install npm
或:
sudo apt install nodejs npm
报错示例
Error: listen EADDRINUSE: address already in use :::3000
解决
lsof -i:3000
kill -9 PID
或换端口:
app.listen(3001)
报错示例
EACCES: permission denied
解决 ❌ 不推荐:
sudo node app.js
✅ 推荐:
sudo chown -R $USER:$USER /项目目录
或用 nvm 安装 Node(避免权限问题)
报错示例
SyntaxError: Unexpected token '??='
解决
node -v
建议版本:
用 nvm 管理:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 18
nvm use 18
报错示例
npm ERR! code ERESOLVE
解决
rm -rf node_modules package-lock.json
npm install
或:
npm install --legacy-peer-deps
报错示例
The following packages have unmet dependencies
解决
sudo apt -f install
sudo apt autoremove
node -v
npm -v
which node
which npm
如果以上有任何异常,说明环境有问题。
✅ 使用 nvm(Node Version Manager)
nvm install 18
nvm use 18
优点:
你可以把完整报错信息贴出来,例如:
我可以直接帮你精准定位 + 给出一条可执行的解决方案。