Ubuntu Focal纯净系统执行任意npm命令均报错,寻求解决帮助
故障排查与解决步骤
问题根源
Ubuntu Focal系统自带的npm版本过于老旧,其依赖的mkdirp包与当前Node.js环境参数不兼容,导致执行任何npm命令时触发参数错误,进而引发npm.load() required的致命异常。
解决方法
1. 彻底卸载系统自带的Node.js和npm
执行以下命令清理旧版本及残留文件:
sudo apt purge nodejs npm -y sudo apt autoremove -y sudo rm -rf /usr/share/npm /usr/lib/node_modules ~/.npm ~/.node-gyp
2. 通过nvm安装兼容的Node.js和npm
nvm是Node.js版本管理工具,可避免系统版本冲突:
- 安装nvm依赖:
sudo apt install curl git -y
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
- 重启终端或执行以下命令使nvm生效:
source ~/.bashrc
- 安装Node.js LTS版本(自动包含对应兼容的npm):
nvm install --lts
3. 验证安装结果
执行以下命令确认Node.js和npm正常工作:
node -v npm -v
此时再执行任意npm命令(如npm -h),即可正常运行。
内容的提问来源于stack exchange,提问作者lomaster
相关产品推荐
相关产品推荐

