Next.js项目执行npm run build时出现Webpack EPERM权限错误求助
Next.js Build 时 EPERM 权限错误的解决方案
问题描述
执行npm run build构建生产版本时,Webpack抛出权限错误:
正在创建优化的生产版本... glob error
[Error: EPERM: Operation not permitted, scandir ‘C:\Users\Ben\Application Data’] {
errno: -4048,
code: ‘EPERM’,
syscall: ‘scandir’,
path: ‘C:\Users\Ben\Application Data’
}
编译失败。
项目位于J盘,其他项目执行build正常,已尝试--force-clean清除缓存但无效。
修复步骤
1. 限定Webpack的模块搜索范围
当前next.config.ts仅排除了loader处理路径,但Webpack的resolve逻辑可能仍在扫描全局系统目录。修改配置,限定搜索范围为项目内部:
import path from 'path'; const nextConfig = { webpack(config) { // 强制模块仅在项目node_modules和根目录查找 config.resolve.modules = [path.resolve(__dirname, 'node_modules'), 'node_modules']; config.resolve.roots = [__dirname]; config.module.rules.push({ test: /\.(js|jsx|ts|tsx)$/, exclude: [/node_modules/, /Application Data/], }); return config; }, }; export default nextConfig;
2. 修正tsconfig.json的排除路径
原配置中exclude的路径与实际系统目录存在空格差异,更新为:
{ "compilerOptions": { // 保持原有配置不变 }, "include": ["src", "types", "next-env.d.ts", ".next/types/**/*.ts"], "exclude": ["node_modules", "**/AppData/**", "**/Application Data/**"] }
3. 排查第三方依赖的异常扫描
部分文件处理类依赖(如exceljs、xlsx)可能会意外扫描系统目录,可按以下步骤排查:
- 执行
npm update更新所有依赖到最新版本 - 临时移除可疑依赖,执行
npm run build测试,逐步定位问题包
4. 以管理员权限执行构建
Windows系统下,部分系统目录需要管理员权限才能访问,右键终端/命令提示符选择「以管理员身份运行」,再执行:
npm run build
5. 检查NODE_PATH环境变量
确保NODE_PATH未指向系统敏感目录:
- 终端执行
echo %NODE_PATH%查看变量值 - 若包含
C:\Users\Ben\Application Data,删除或修改该环境变量
内容的提问来源于stack exchange,提问作者Captai-N
相关产品推荐
相关产品推荐

