Next.js启动报EPERM: operation not permitted, rmdir错误求助
问题根因
你遇到的EPERM权限报错本质是项目放在Google Drive同步目录导致的文件锁定冲突:
Next.js开发模式运行时会频繁增删修改.next目录下的临时构建产物,而Windows端Google Drive的后台同步进程会主动锁定正在同步的文件/目录,导致Next.js无法执行删除目录的操作,就会抛出该错误。你迁移新项目后暂时正常是因为新放入的文件还没触发后台同步锁,等同步完成文件被锁定后重启就会复现问题,和npm缓存无关,所以执行npm cache clean自然无效。
解决方案
1. 最彻底方案(推荐)
把整个项目目录移出Google Drive同步文件夹,放到本地无云同步的普通目录(例如C:\Projects\这类路径)。开发迭代用Git做版本托管,需要备份时手动将打包后的产物上传到云盘即可,从根源避免同步锁冲突。
2. 保留项目在Google Drive的方案
打开Google Drive桌面端的设置页,找到忽略同步的文件/文件夹规则,将项目根目录下的.next文件夹添加到排除同步列表,不让Google Drive同步这个频繁变动的临时构建目录,即可避免文件锁定。
3. 临时应急方案
每次报错时先完全退出Google Drive桌面端进程,手动删除项目根目录下的.next文件夹,再执行npm run dev启动项目即可正常运行。
4. 自定义构建输出路径方案
如果不想改动现有目录结构,可以修改next.config.js配置,将Next.js的构建产物输出到云盘之外的本地路径:
/** @type {import('next').NextConfig} */ const nextConfig = { // 自行替换为你本地云盘外的有效路径 distDir: 'C:/next-build-cache/optical-font-project/.next' } module.exports = nextConfig
内容的提问来源于stack exchange,提问作者George M
相关产品推荐
相关产品推荐

