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

React Native Expo服务器报错:.git目录EPERM权限问题(维护锁文件不存在)

解决Expo启动React Native服务器时的EPERM权限错误

报错信息:

Error: EPERM: operation not permitted, lstat 'D:\\App Development\\deliveroo\\.git\\objects\\maintenance.lock'  
Emitted 'error' event on NodeWatcher instance at:
    at D:\\App Development\\deliveroo\\node_modules\\metro-file-map\\src\\watchers\\NodeWatcher.js:278:14
    at FSReqCallback.oncomplete (node:fs:198:21) {
  errno: -4048,
  code: 'EPERM',
  syscall: 'lstat',
  path: 'D:\\\\App Development\\\\deliveroo\\\\.git\\\\objects\\\\maintenance.lock'
}

以下是针对该问题的实用修复方案:

修复步骤

  • 强制终止Git维护进程
    即便目标文件不存在,Git可能仍残留维护模式状态。在项目根目录执行:

    git maintenance stop
    git maintenance unregister
    

    强制关闭Git自动维护机制,避免其尝试访问不存在的锁文件。

  • 清理缓存并重启服务
    彻底关闭当前Expo/Metro进程,然后清除Metro缓存后重启:

    npx expo start --clear
    

    也可手动删除Windows下的Metro缓存目录(路径一般为%LOCALAPPDATA%\Temp\metro-cache),再重新启动服务。

  • 修复Git仓库完整性
    清理Git冗余数据并修复潜在仓库异常:

    git fsck --full
    git gc --prune=now
    
  • 以管理员身份运行终端
    右键选择终端(CMD/PowerShell)的「以管理员身份运行」,再执行npx expo start,规避Windows系统权限限制导致的文件访问问题。

  • 配置Metro忽略Git目录
    修改项目根目录的metro.config.js,添加Git目录到监听忽略列表:

    const { getDefaultConfig } = require('@expo/metro-config');
    
    const config = getDefaultConfig(__dirname);
    config.resolver.blockList = [/\.git\/.*/];
    
    module.exports = config;
    

    阻止Metro监听Git内部文件,从根源避免触发对maintenance.lock的访问。

内容的提问来源于stack exchange,提问作者Darpan Mendiratta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:30:42