在 Ubuntu 上运行 Node.js 报错的原因有很多,下面我按常见场景帮你梳理一下,你可以对照看看是哪一种,或者直接把具体报错信息贴出来,我可以更精准地帮你分析。
现象
node: command not found
解决
node -v
如果没有版本号:
sudo apt update
sudo apt install nodejs npm
⚠️ Ubuntu 自带仓库的 Node 版本通常很旧,推荐用 NodeSource 或 nvm 安装
现象
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! Error: EACCES: permission denied
解决(推荐) 不要用 sudo 装 npm 包:
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
现象
Error: listen EADDRINUSE: address already in use :::3000
解决
lsof -i:3000
kill -9 <PID>
现象
Error: Cannot find module 'express'
解决
npm install
现象
sudo node app.js 报错,普通用户没问题
解决 避免 sudo,或用:
sudo -E node app.js
某些原生模块(如 bcrypt)会编译失败
解决
sudo apt install build-essential
npm rebuild
方便我快速判断:
node -v
npm -v
如果你愿意,把报错原样复制过来,我可以直接告诉你是哪一行代码、为什么错、怎么改 ✅