Ubuntu 下 Node.js 报错 的原因非常多,不能一概而论。下面我按最常见情况给你一个排查清单,并给出对应解决办法。你可以对照看看,或者把具体报错内容贴出来,我可以精准帮你分析。
报错示例:
node: command not found
解决:
node -v
如果没安装:
sudo apt update
sudo apt install nodejs npm
⚠️ Ubuntu 官方源版本可能很旧,推荐用 NodeSource 或 nvm
✅ 推荐方式(nvm):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
报错示例:
EACCES: permission denied
解决(不要用 sudo npm):
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
或直接使用 nvm(不会产生权限问题)
报错示例:
The engine "node" is incompatible with this module
解决:
node -v
升级 Node:
nvm install 18
nvm use 18
报错示例:
Error: Cannot find module 'express'
解决:
rm -rf node_modules package-lock.json
npm install
报错示例:
Error: listen EADDRINUSE: address already in use :::3000
解决:
lsof -i:3000
kill -9 PID
或修改端口:
app.listen(3001)
报错示例:
node-gyp build error
解决:
sudo apt install build-essential
报错示例:
Permission denied
✅ 正确做法:
node app.js
❌ 错误做法:
sudo node app.js
npm run dev
# 或
node app.js
把 红色报错信息全部复制
| 关键词 | 原因 |
|---|---|
command not found |
没装 Node |
EACCES |
权限问题 |
Cannot find module |
依赖缺失 |
EADDRINUSE |
端口占用 |
node-gyp |
编译工具缺失 |
SyntaxError |
Node 版本太低 |
请直接贴出:
node -v 和 npm -v例如:
Ubuntu 22.04
Node v12.22.9
报错:Cannot find module 'xxx'
我可以一步一步帮你解决 ✅