使用Yarn安装npm包遇EPERM权限错误,求解决方案
解决Yarn安装新包时的EPERM权限错误问题
我之前也踩过一模一样的坑——每次想加新npm包就弹出EPERM: operation not permitted in Yarn错误,删了node_modules重跑Yarn能暂时解决,但再装别的包又会炸。折腾了好一阵,终于攒了几个亲测有效的解决办法,你可以挨个试:
清理并修复Yarn缓存权限
缓存目录权限混乱是常见诱因,先清缓存:yarn cache clean然后根据系统修复权限:
- macOS/Linux:给缓存目录赋当前用户所有权
sudo chown -R $USER:$USER ~/.cache/yarn - Windows(管理员命令提示符):重置缓存目录权限
icacls "%USERPROFILE%\.cache\yarn" /reset /T
- macOS/Linux:给缓存目录赋当前用户所有权
别用sudo跑Yarn!修复现有文件权限
很多人图省事用sudo装包,结果把node_modules、package.json这些文件的所有权改成了root(macOS/Linux),后续普通用户根本没法操作。先修复现有文件权限:- macOS/Linux:
sudo chown -R $USER:$USER node_modules sudo chown -R $USER:$USER package.json yarn.lock - Windows:右键node_modules文件夹→属性→安全→编辑,给当前登录用户添加「完全控制」权限。
- macOS/Linux:
升级Yarn或切换到Yarn Berry
旧版Yarn的权限管理可能有bug,试试升级到最新稳定版:yarn set version stable要是还不行,直接换Yarn Berry(新版Yarn),它的权限逻辑更完善:
yarn set version berry切换后重新跑
yarn install,再尝试加新包。检查系统级拦截
- Windows:可能是杀毒软件、Windows Defender的实时保护拦了Yarn的文件操作,暂时关闭试试(记得之后开回来)。
- macOS:去「系统偏好设置→安全性与隐私」看看有没有弹出Yarn被阻止的提示,点「允许」就行。
极端情况:重新初始化项目
如果上面都没用,备份好你的package.json和yarn.lock,然后删掉.yarnrc、.yarn(Berry版才有)、node_modules这些文件,重新初始化:yarn init -y把备份的依赖复制回新的package.json,再跑
yarn install,之后应该就能正常加包了。
内容的提问来源于stack exchange,提问作者Pranta
相关产品推荐
相关产品推荐

