执行npm install -g json-server安装失败报EACCES权限错误
npm全局安装json-server报EACCES权限错误解决方案
报错原因
这个错误是因为npm默认的全局包存储路径/usr/local/lib/node_modules/仅允许root用户写入,当前普通用户没有对应目录的操作权限,所以触发了权限拒绝报错。
解决方案
按推荐优先级从高到低排列:
方案1:修改npm全局包默认存储路径(最推荐,无系统权限修改风险)
- 第一步:在当前用户目录下创建自定义全局包存储文件夹
mkdir ~/.npm-global - 第二步:配置npm使用新路径作为全局安装前缀
npm config set prefix '~/.npm-global' - 第三步:将自定义路径的可执行文件目录加入系统环境变量
如果你使用bash终端,编辑~/.bashrc文件;如果使用zsh终端,编辑~/.zshrc文件,在文件末尾添加如下内容:export PATH=~/.npm-global/bin:$PATH - 第四步:刷新环境变量使配置生效
bash终端执行:source ~/.bashrc
zsh终端执行:source ~/.zshrc - 第五步:重新执行安装命令即可
npm install -g json-server
方案2:临时使用管理员权限安装(仅适合临时使用,不推荐长期操作)
- 直接在原安装命令前增加
sudo前缀执行即可,执行时输入当前用户的登录密码验证sudo npm install -g json-server
方案3:修改全局包目录归属权限给当前用户(不推荐,修改系统目录权限有安全风险)
- 执行命令修改目录所有者为当前用户
sudo chown -R $USER:$USER /usr/local/lib/node_modules - 重新执行原安装命令即可
npm install -g json-server
内容的提问来源于stack exchange,提问作者Egor Ulybin
相关产品推荐
相关产品推荐

