You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04安装@angular/cli出现EACCESS权限错误如何解决?

解决Ubuntu下全局安装@angular/cli的EACCESS权限问题

兄弟,我太懂你这种两难了——用root权限跑命令确实能消掉EACCESS错误,但总怕不小心搞坏系统文件,毕竟root权限的威力太大了。针对你在Ubuntu 16.04、node v8.11.1、npm v5.6.0环境下遇到的这个问题,给你几个靠谱的非root解决方案:

方案一:修改npm全局安装目录到用户专属路径(最推荐)

这个方法从根源上解决权限问题,把全局包安装到你自己的用户目录下,完全不需要碰root权限:

  • 先在用户主目录创建一个专门存放全局npm包的文件夹:
    mkdir ~/.npm-global
    
  • 告诉npm以后用这个新目录作为全局安装的前缀路径:
    npm config set prefix '~/.npm-global'
    
  • 接下来要把这个目录加入系统的PATH环境变量,这样终端才能找到你全局安装的命令。编辑你的用户配置文件:
    nano ~/.profile
    
  • 在文件末尾添加这一行内容:
    export PATH=~/.npm-global/bin:$PATH
    
  • 保存退出后,让配置立即生效:
    source ~/.profile
    
  • 现在再去安装@angular/cli就完全没问题了:
    npm install -g @angular/cli
    

方案二:用npx临时安装运行(适合临时场景)

如果你只是想快速创建Angular项目,不想折腾全局配置,可以直接用npx,它会临时下载@angular/cli并执行,不需要全局安装:

npx @angular/cli new my-app

不过这个方法不会把cli全局安装到你的系统里,下次再用还得重新下载,所以长期用的话还是方案一更合适。

方案三:修复现有目录权限(不推荐,仅临时救急)

如果你实在不想改全局目录,也可以修改npm默认全局目录的所有者为当前用户,这样普通用户就能写入了:

sudo chown -R $USER:$USER /usr/lib/node_modules

⚠️ 注意:这个方法会修改整个系统级node_modules目录的权限,可能影响其他依赖包的正常使用,所以不到万不得已不建议用。

为啥会出现这个错误?

简单说就是npm默认把全局包装到系统级目录(比如/usr/lib/node_modules),这个目录只有root用户才有写入权限,普通用户执行全局安装自然就会触发EACCESS错误。改成用户目录下的路径就完美避开了这个权限限制,而且更安全,不会影响系统其他部分。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:25:28