首先检查Node.js和npm是否正确安装,终端运行以下命令:
node -v(查看Node.js版本)、npm -v(查看npm版本)。
若未返回版本号,说明未安装或安装失败,需通过以下方式安装:
sudo apt update && sudo apt install nodejs npmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install --lts # 安装最新的LTS版本(生产环境建议)
nvm use --lts # 切换至LTS版本
安装后再次运行node -v确认。错误信息是解决问题的核心线索,需重点关注:
SyntaxError、TypeError、ModuleNotFoundError);app.js:10:20);Error: listen EADDRINUSE :::3000,说明端口3000已被占用,需终止占用进程或更换端口。依赖是Node.js项目的核心,常见问题及解决方法:
npm install(根据package.json安装所有依赖);node_modules文件夹和package-lock.json文件,再重新安装:rm -rf node_modules package-lock.json && npm install;mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
之后用npm install -g 包名安装全局包。npm缓存可能导致安装或运行错误,运行以下命令清除缓存:
npm cache clean --force
清除后重新安装依赖。
import),确保package.json中设置了"type": "module",或使用Babel转译代码。若错误提示“EADDRINUSE”(地址已使用),说明端口被其他进程占用,解决方法:
sudo lsof -i :端口号(如sudo lsof -i :3000);sudo kill -9 进程ID(如sudo kill -9 1234);app.listen(3001))。package.json中的engines字段(如"node": ">=14.0.0"),确保Node.js版本符合要求;nvm install 版本号安装,再用nvm use 版本号切换。logs/error.log),用cat logs/error.log或tail -f logs/error.log查看详细错误;sudo tail -f /var/log/syslog;node --inspect app.js启动调试模式,在Chrome浏览器中打开chrome://inspect连接,逐步排查代码问题。权限问题可能导致Node.js无法读写文件或监听端口,解决方法:
sudo chown -R $USER:$USER /path/to/project);chmod -R 755 /path/to/project);以上方法覆盖了Ubuntu上Node.js常见的错误场景,可根据具体错误信息逐步排查。若问题仍未解决,建议将错误信息复制到Stack Overflow等社区寻求帮助(注意隐藏敏感信息)。