无法卸载Angular CLI旧版本,安装最新版后版本仍未更新求助
无法卸载/升级全局Angular CLI(关联NVM Node版本管理问题)
问题重现
我尝试用最新版Angular CLI创建Angular 6新项目,但始终无法完成升级。尝试卸载全局CLI后重新安装,卸载操作完全没生效:
- 在空文件夹执行
ng -v,输出始终是旧版本:
Angular CLI: 1.5.4 Node: 9.4.0 OS: darwin x64 Angular: ...
- 执行了一系列卸载命令:
npm uninstall -g angular-cli npm uninstall --save-dev angular-cli npm uninstall -g @angular/cli npm cache verify
- 再次执行
ng -v,还是显示相同的1.5.4版本,没有提示"ng未找到"。 - 尝试安装最新版全局CLI:
npm install -g @angular/cli@latest,版本依旧没变化。
环境信息
- 操作均在无项目的空文件夹执行,无本地
node_modules,所有命令都是全局(-g) - 系统:OSX,用NVM管理Node版本,当前激活版本是Node 9.4.0
- 排查发现:在
/Users/joshua/.nvm/versions/node/v6.11.5/lib/node_modules下有@angular/cli文件夹,但当前激活的v9.4.0目录下没有Angular相关文件
我不想删除其他Node版本下的CLI(担心破坏现有项目环境),也不想完全卸载NVM和Node,希望找到针对性的解决办法。
解决方案
这个问题的核心是NVM切换Node版本后,系统的ng命令指向了旧版本Node下的全局CLI,而非当前激活版本的。可以按以下步骤解决:
定位
ng命令的实际路径
在终端执行:which ng你会看到类似
/Users/joshua/.nvm/versions/node/v6.11.5/bin/ng的路径,这说明当前ng是调用了v6.11.5版本下的CLI。清理旧版本的
ng可执行文件
直接删除这个旧的ng文件:rm $(which ng)(可选)清理旧Node版本下的CLI(如果不需要保留)
如果可以清理v6.11.5下的CLI,切换到该版本执行卸载:nvm use 6.11.5 npm uninstall -g @angular/cli在当前激活的Node版本下重新安装最新CLI
切回v9.4.0,安装最新版:nvm use 9.4.0 npm install -g @angular/cli@latest验证结果
执行ng -v,此时应该显示你安装的最新Angular CLI版本了。
补充说明
如果需要保留旧Node版本下的CLI,只需要执行步骤1、2、4即可——删除旧的ng可执行文件后,当前激活的Node版本下重新安装的CLI会成为系统默认调用的版本,不会影响其他Node版本的环境。
内容的提问来源于stack exchange,提问作者Joshua Ohana
相关产品推荐
相关产品推荐

