Angular 10升级至11遇权限错误:无法访问父目录
解决方案
1. 修复npm权限问题(核心诱因)
不要用sudo执行npm命令,这会导致当前目录权限被root用户占用,触发uv_cwd权限错误。按以下步骤调整npm全局配置:
- 创建专属全局npm目录:
mkdir -p ~/.npm-global - 配置npm使用该目录:
npm config set prefix '~/.npm-global' - 将目录添加到系统PATH(编辑
~/.bashrc或~/.zshrc):export PATH=~/.npm-global/bin:$PATH - 刷新配置生效:
source ~/.bashrc # 若用zsh则执行 source ~/.zshrc
2. 清理项目依赖环境
- 删除项目根目录的依赖文件:
rm -rf node_modules package-lock.json - 强制清除npm缓存:
npm cache clean --force
3. 分步升级Angular(从10到11,再逐步推进到15)
升级至Angular 11
- 先安装Angular CLI 11本地版本:
npm install @angular/cli@11 --save-dev - 执行核心升级命令(无需sudo):
ng update @angular/core@11 @angular/cli@11 - 同步升级Angular Material与CDK:
ng update @angular/material@11
后续升级至12-15
严格遵循小版本递进升级原则,避免跨大版本跳跃:
- 升级到12:
ng update @angular/core@12 @angular/cli@12,同步升级Material - 升级到13:
ng update @angular/core@13 @angular/cli@13 - 升级到14:
ng update @angular/core@14 @angular/cli@14 - 升级到15:
ng update @angular/core@15 @angular/cli@15
4. Node.js版本适配
Angular 11要求Node.js >=12.14.1,你当前使用的12.11.1版本过低,建议升级到Node.js 14.x(LTS版本,兼容Angular 10至15全版本),避免版本不兼容引发的隐性问题。
额外注意事项
- 升级时若出现依赖冲突,优先查看报错信息中的冲突包,手动调整版本后重新执行升级命令
- 每一步升级完成后,执行
npm install确保依赖安装完整,再用ng build验证项目构建是否正常
内容的提问来源于stack exchange,提问作者Curtis
相关产品推荐
相关产品推荐

