Angular 5升级至6遇权限及符号链接错误,求解决与重装方案
解决Angular 5升级至6时的ELOOP与权限错误
看起来你在升级过程中碰到了权限不足和**符号链接循环(ELOOP)**的问题,这大概率是升级残留的损坏链接或全局包权限配置导致的。下面是彻底清理并重新安装的完整步骤:
1. 彻底移除损坏的全局Angular包
因为符号链接循环的问题,直接用npm uninstall可能无法正常移除,所以我们手动清理:
- 先确认全局包的安装位置,执行:
npm list -g --depth=0 - 然后用sudo权限删除全局的@angular相关目录和CLI包:
sudo rm -rf /usr/local/lib/node_modules/@angular sudo rm -rf /usr/local/lib/node_modules/@angular/cli - 清理npm缓存,避免残留的损坏文件:
npm cache clean --force
2. 修复npm全局权限(推荐,避免后续问题)
为了以后不用每次都sudo安装全局包,建议修改npm的全局安装目录:
- 创建专属的全局包目录:
mkdir ~/.npm-global - 配置npm使用这个目录:
npm config set prefix '~/.npm-global' - 将该目录添加到你的shell环境变量(根据你用的shell,比如bash或zsh):
# 如果你用的是bash,编辑~/.bash_profile;zsh则编辑~/.zshrc echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc - 刷新配置让修改生效:
source ~/.zshrc
3. 重新安装Angular CLI 6.x版本
现在可以安装对应版本的Angular CLI了(因为你要升级到Angular 6,所以指定6.x版本):
npm install -g @angular/cli@6
- 验证安装是否成功:
ng --version
4. 修复项目本地依赖
进入你的Angular项目目录,清理本地残留的损坏依赖:
- 删除node_modules文件夹和package-lock.json:
rm -rf node_modules package-lock.json - 重新安装项目依赖:
npm install - 如果还没完成项目的升级,执行Angular的升级命令:
ng update @angular/cli @angular/core
按这个流程操作后,应该就能解决你遇到的错误了。
内容的提问来源于stack exchange,提问作者Paco Zevallos
相关产品推荐
相关产品推荐

