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

运行npm脚本报ENOENT错误 找不到npm生成的临时cmd文件如何解决

故障根因

该报错不是npm自身生成临时文件的逻辑错误,本质是npm在系统临时目录创建的执行脚本e2e-<timestamp>.cmd在写入阶段被拦截/删除,导致npm后续执行openSync读取文件时找不到目标。

排查解决步骤

按优先级从高到低操作:

  • 优先排查安全软件拦截:Windows Defender、第三方杀毒软件、企业终端安全管控程序,会默认将Temp目录下随机命名的.cmd脚本判定为高风险恶意程序,在npm创建文件的瞬间直接隔离删除。
    操作:将系统临时目录C:\Users\Chris\AppData\Local\Temp\、项目根目录加入安全软件白名单,临时关闭实时防护后重试脚本,如果不再报错直接对应配置白名单即可。
  • 校验临时目录权限:确认当前登录的Windows账号对Temp目录拥有完全读写权限,权限不足时系统会拦截npm的写入操作,抛出文件不存在的异常。
    操作:右键Temp文件夹→「属性」→「安全」,确认当前登录用户的权限勾选了「完全控制」,权限异常时直接重置目录所有权和权限。
  • 修复npm运行环境
    1. 执行npm cache clean --force清空损坏的npm缓存
    2. 手动删除Temp目录下所有npm-*、e2e-*前缀的残留临时文件
    3. 删除项目下的node_modules文件夹和package-lock.json,重新执行npm install安装依赖后重试
  • 修复npm版本兼容问题:npm 8.x版本内置的@npmcli/run-script模块在部分Windows环境存在临时文件创建的时序bug,升级或降级npm版本即可解决:
    执行npm install -g npm@9升级到v9稳定版,或执行npm install -g npm@6降级到兼容性更好的v6 LTS版本后重试。
  • 排查自动清理程序:如果开启了Windows存储感知、第三方磁盘自动清理工具,这类程序会自动扫描删除Temp目录下的新建文件,临时关闭自动清理功能后测试。

快速验证技巧:手动在Temp目录下新建一个e2e-test.cmd空文件,如果文件在数秒内自动消失,即可确定是第三方拦截/清理程序导致的问题,直接定位对应软件配置规则即可。

内容的提问来源于stack exchange,提问作者Christopher Walters

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:54:23