执行npm i @solana/web3.js时报EPERM权限错误安装失败怎么办
问题说明
执行npm i @solana/web3.js安装依赖时流程中断,抛出权限类报错:
EPERM: operation not permitted, unlink 'C:\Users<user>\node_modules\bufferutil\prebuilds\win32-ia32\node.napi.node'
此前已尝试修改npm配置prefix参数、重装Node.js、升级NPM/Yarn版本,均未解决问题。
核心原因
这个报错和npm路径配置、Node版本没有直接关系,本质是Windows环境下bufferutil(@solana/web3.js的间接依赖,带原生二进制文件)的目标文件被进程锁定,或是被系统/安全软件拦截了删除、写入权限,导致npm无法替换旧文件完成安装。
修复方案
按以下顺序操作,每步完成后重新执行安装命令验证即可:
- 彻底结束所有占用文件的进程
关闭所有打开的代码编辑器(VSCode等)、终端、本地运行的Node服务、Solana本地节点、调试中的DApp页面,打开任务管理器手动结束所有node.exe、npm.exe相关进程,释放文件锁。 - 清理残留文件与缓存
在终端执行以下命令:# 强制清空npm缓存 npm cache clean --force # 删除项目内残留依赖和锁文件 rd /s /q node_modules del package-lock.json # 删除全局路径下残留的bufferutil文件夹(替换<user>为你实际的Windows用户名) rd /s /q C:\Users\<user>\node_modules\bufferutil - 提权执行安装
右键点击终端图标,选择「以管理员身份运行」,切换到项目目录后重新执行安装命令,避免普通用户权限不足的问题。 - 排查安全软件拦截
Windows Defender或第三方杀毒软件经常会误判.node后缀的原生二进制文件为风险程序,自动锁死文件阻止修改。临时关闭实时防护,或是把项目目录、Node.js安装目录加入安全软件白名单后重试。 - 兜底方案:跳过可选原生依赖
bufferutil是用于提升WebSocket连接性能的可选依赖,不安装不会影响@solana/web3.js核心功能,执行安装时加参数跳过可选依赖即可绕过问题:npm i @solana/web3.js --no-optional
内容的提问来源于stack exchange,提问作者back2match
相关产品推荐
相关产品推荐

