You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js执行npm i multer安装Multer时出现EPERM报错求助

问题描述

Node.js项目开发过程中,需引入Multer包实现文件上传能力,在命令行执行npm i multer安装依赖时流程中断,无法完成安装,终端完整报错输出如下:

npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
npm WARN task-manager@1.0.0 No description
npm WARN task-manager@1.0.0 No repository field.

npm ERR! code EPERM
npm ERR! syscall unlink
npm ERR! path D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.nodenpm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'
npm ERR!  [OperationalError: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'] {
npm ERR!   cause: [Error: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'] {
npm ERR!     errno: -4048,
npm ERR!     code: 'EPERM',
npm ERR!     syscall: 'unlink',
npm ERR!     path: 'D:\\Rakesh Folder\\NodeCourse\\task-manager\\node_modules\\.bcrypt.DELETE\\lib\\binding\\napi-v3\\bcrypt_lib.node'
npm ERR!   },
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'D:\\Rakesh Folder\\NodeCourse\\task-manager\\node_modules\\.bcrypt.DELETE\\lib\\binding\\napi-v3\\bcrypt_lib.node',
npm ERR!   parent: 'task-manager'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
PS D:\Rakesh Folder\NodeCourse\task-manager> npm i multer
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
npm WARN task-manager@1.0.0 No description
npm WARN task-manager@1.0.0 No repository field.

npm ERR! code EPERM
npm ERR! syscall unlink
npm ERR! path D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.nodenpm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'
npm ERR!  [OperationalError: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'] {
npm ERR!   cause: [Error: EPERM: operation not permitted, unlink 'D:\Rakesh Folder\NodeCourse\task-manager\node_modules\.bcrypt.DELETE\lib\binding\napi-v3\bcrypt_lib.node'] {
npm ERR!     errno: -4048,
npm ERR!     code: 'EPERM',
npm ERR!     syscall: 'unlink',
npm ERR!     path: 'D:\\Rakesh Folder\\NodeCourse\\task-manager\\node_modules\\.bcrypt.DELETE\\lib\\binding\\napi-v3\\bcrypt_lib.node'
npm ERR!   },
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'D:\\Rakesh Folder\\NodeCourse\\task-manager\\node_modules\\.bcrypt.DELETE\\lib\\binding\\napi-v3\\bcrypt_lib.node',
npm ERR!   parent: 'task-manager'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\AnneRakesh\AppData\Roaming\npm-cache\_logs\2022-06-13T15_12_05_270Z-debug.log
故障原因
  • 核心故障为Windows系统返回EPERM权限错误:npm安装新依赖时需要清理node_modules目录下之前安装bcrypt残留的.bcrypt.DELETE临时文件夹,但无权限删除文件夹内的bcrypt_lib.node二进制文件,直接导致安装流程中断。
  • 该类文件无法删除的常见诱因:
    • 本地正在运行的Node服务、打开项目的代码编辑器占用了该二进制文件,Windows系统默认锁定被进程占用的文件,不允许删除操作
    • 杀毒软件、系统安全防护工具正在扫描node_modules目录,临时锁定了相关文件
    • 当前运行命令行的账号对项目目录没有足够的写/删除权限
    • 此前安装bcrypt依赖时异常中断,残留了待清理的临时文件,且文件一直处于锁定状态
  • 日志开头的lockfile版本警告不会直接导致安装失败:当前使用的npm为v6及以下版本(对应lockfile规范版本v1),但项目内的package-lock.json是npm v7及以上版本生成的(对应lockfile规范版本v2),npm会尝试做兼容处理,但长期可能出现依赖版本不一致问题。
解决方法

按以下顺序操作,每完成一步可尝试重新执行安装命令验证:

  1. 释放文件占用
    • 停掉所有本地运行的Node.js服务,关闭所有和该项目相关的终端窗口,打开任务管理器结束所有node.exe进程
    • 关闭打开该项目目录的代码编辑器(如VS Code)
    • 临时关闭杀毒软件、Windows Defender的实时扫描功能,安装完成后可重新开启
  2. 清理残留文件
    • 进入项目目录D:\Rakesh Folder\NodeCourse\task-manager\node_modules\,找到名称带.bcrypt.DELETE的文件夹直接手动删除
    • 如果手动删除提示文件被占用,可重启电脑后再执行删除操作;如果仍无法删除,直接删除整个node_modules文件夹,同时删除项目根目录下的package-lock.json文件
  3. 提升命令行权限
    • 关闭当前普通权限的命令行窗口,右键点击CMD/PowerShell图标,选择「以管理员身份运行」,再通过cd命令切换到项目根目录
  4. 重新安装依赖
    • 如果仅删除了bcrypt残留文件夹,直接执行npm i multer即可完成安装
    • 如果删除了整个node_modules和lock文件,先执行npm install安装项目原有依赖,再执行npm i multer安装Multer包
  5. (可选)修复lockfile版本警告
    • 执行npm install -g npm@latest将本地npm升级到最新稳定版,升级后npm会自动适配lockfile版本v2规范,不会再出现兼容性警告。

内容的提问来源于stack exchange,提问作者Anne Rakesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:39:17