执行npm install -g ionic cordova时遇权限错误求助
解决npm全局安装ionic/cordova时的EACCES权限错误
我碰到过不少开发者遇到这个问题——哪怕切换到root用户还是踩坑,本质上这是npm全局包目录的权限配置出了问题。结合你当前的环境(node v9.11.1、npm 6.0.1),给你几个靠谱的解决思路:
方案1:修复npm全局目录的所有者权限(最推荐)
这个方法不用改全局目录路径,直接把系统级的npm目录权限转回给当前用户:
- 先确认npm的全局前缀目录:
通常输出是npm config get prefix/usr或者/usr/local - 修改该目录的所有者为当前用户(
$USER和$GROUP会自动识别你的用户名和用户组):sudo chown -R $USER:$GROUP $(npm config get prefix) - 现在再重新运行安装命令:
npm install -g ionic cordova
方案2:配置自定义npm全局目录(彻底避开系统权限)
如果方案1没解决,或者你不想碰系统目录,可以给npm单独设置一个用户级的全局目录:
- 在用户目录下创建自定义全局目录:
mkdir ~/.npm-global - 告诉npm使用这个新目录:
npm config set prefix '~/.npm-global' - 把新目录的bin路径添加到环境变量里,编辑
~/.profile或者~/.bashrc文件,添加一行:export PATH=~/.npm-global/bin:$PATH - 刷新环境变量让配置生效:
source ~/.profile - 最后执行安装命令:
npm install -g ionic cordova
方案3:临时启用unsafe-perm(针对root用户的特殊情况)
有时候root用户运行npm会因为默认的unsafe-perm=false配置导致权限问题,可以尝试强制开启这个选项:
npm install -g ionic cordova --unsafe-perm=true
注意:不推荐长期用root运行npm,这样安装的包文件会是root权限,后续普通用户运行相关命令时可能再次遇到权限问题,优先用方案1或方案2解决。
内容的提问来源于stack exchange,提问作者Prashant Patel
相关产品推荐
相关产品推荐

