Ubuntu 20系统重装node/npm后无法安装Angular CLI求助
问题根因
安装失败有两个直接原因:
- 命令拼写+格式错误:执行的
sudo npm instal-g @angular/cli存在两处错误,一是install少打了末尾的l,二是全局参数-g和install命令之间没有空格,命令本身不符合npm语法要求。 - 依赖版本不匹配:Ubuntu/Debian官方apt源内置的nodejs、npm版本普遍过旧,和Angular CLI的版本依赖要求完全错位,哪怕命令写对了,也会报版本兼容错误,这也是之前运行老项目时被提示需要调整node、npm版本的核心原因——直接用apt源装的node根本不符合Angular的版本要求。
修复步骤
按顺序执行以下操作即可解决:
- 第一步:彻底清理现有残留的node、npm、Angular相关文件,避免旧文件干扰
执行以下命令:sudo apt-get purge nodejs npm sudo apt autoremove sudo rm -rf /usr/local/lib/node_modules sudo rm -rf ~/.npm sudo rm -rf /usr/local/bin/node sudo rm -rf /usr/local/bin/npm sudo rm -rf /usr/local/bin/ng - 第二步:安装nvm node版本管理工具,从根源解决版本兼容问题
不要直接用apt源安装node做前端开发,版本老旧且权限混乱,用nvm可以随时切换不同版本的node,适配不同时期的项目。执行以下命令安装nvm:
安装完成后关闭当前终端,重新打开新终端输入curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashnvm -v,能输出版本号即为安装成功。 - 第三步:安装匹配Angular版本的node
版本对应规则:Angular 12/13版本(2021年前后的主流稳定版)适配node 14.x版本,npm会随node自动安装对应兼容版本,不需要手动单独降级npm。
执行以下命令安装node 14并设为默认版本:
安装完成后执行nvm install 14 nvm use 14 nvm alias default 14node -v、npm -v确认版本正常即可。 - 第四步:正确安装Angular CLI
注意:用nvm安装的node存在于当前用户目录,全局安装npm包时不要加sudo,否则会出现权限冲突。执行对应版本的安装命令:
如果2021年的老项目用的是更低版本的Angular,把命令里的npm install -g @angular/cli@13@13换成对应大版本号即可,比如Angular12就写@angular/cli@12。安装完成后执行ng version,能正常输出版本信息即为安装成功。
避坑提示
- 后续如果需要切换node版本适配其他项目,直接用
nvm install 版本号、nvm use 版本号即可,不需要反复卸载重装node。 - 运行老项目前先看项目根目录
package.json里@angular/core的版本号,全局安装的Angular CLI大版本和它保持一致,就不会出现编译、运行报错。 - 不要随便用sudo执行npm全局安装命令,nvm管理的node环境不需要root权限,加sudo反而会把包装到root目录下,导致普通用户无法调用。
内容的提问来源于stack exchange,提问作者Pragya Kumari
相关产品推荐
相关产品推荐

