npm全局安装json-server报EPERM错误 仅管理员可安装原因求助
错误根因
该报错为Windows系统普通用户权限不足导致:
默认Node.js安装在系统级受保护目录C:\Program Files\nodejs下,普通用户账号默认没有该目录的写入权限。执行npm install -g全局安装包时,npm会默认将包写入C:\Program Files\nodejs\node_modules路径,普通用户无法在此处创建新目录、写入文件,因此抛出EPERM权限错误。使用管理员权限运行命令时,账号获得了系统目录的写入权限,因此可以正常安装。
可行解决方案
方案1:修改npm全局安装路径(推荐,一劳永逸)
将npm全局包的存储路径修改为当前用户目录下的可写路径,后续不需要每次都调用管理员权限:
- 第一步:在当前用户目录下新建两个文件夹,例如
C:\Users\你的用户名\npm_global和C:\Users\你的用户名\npm_cache - 第二步:打开命令行执行以下两条配置命令,替换路径为你刚才创建的文件夹路径:
npm config set prefix "C:\Users\你的用户名\npm_global" npm config set cache "C:\Users\你的用户名\npm_cache"
- 第三步:配置用户环境变量:打开系统环境变量设置,在用户变量的
Path中新增一条C:\Users\你的用户名\npm_global,删除原来指向C:\Program Files\nodejs的npm全局路径配置 - 第四步:重启命令行后,再次执行
npm install -g json-server即可正常安装
方案2:临时调用管理员权限安装
如果只是偶尔需要安装全局包,可以右键点击你使用的命令行工具(CMD/PowerShell/终端),选择「以管理员身份运行」,之后再执行安装命令即可。缺点是每次安装全局包都需要重复该操作。
方案3:修改Node.js安装目录权限(不推荐)
右键点击C:\Program Files\nodejs文件夹,依次选择「属性-安全-编辑」,给当前登录的用户账号添加「完全控制」权限,后续普通用户也可以直接写入该目录。该方法会降低系统目录的安全级别,仅建议临时使用。
如果完成配置后仍然报错,可以检查是否有杀毒软件正在锁定node_modules目录,或者是否有同名的json-server目录正在被其他程序占用,关闭相关程序后重试即可。
内容的提问来源于stack exchange,提问作者Hemang Joshi
相关产品推荐
相关产品推荐

