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
相关产品推荐
相关产品推荐

