Next.js应用创建失败:errno:-4066错误求助
解决Next.js创建时EMFILE: too many open files错误
问题说明
执行npx create-next-app创建项目(命名为form,选择TypeScript、ESLint、src/目录、实验性app/目录、导入别名等选项),依赖安装完成后,初始化模板时触发以下错误:
[Error: EMFILE: too many open files, open 'C:\Marcin\coding\Projekt16\form\node_modules\next\dist\compiled\is-docker\package.json'] { errno: -4066, code: 'EMFILE', syscall: 'open', path: 'C:\Marcin\coding\Projekt16\form\node_modules\next\dist\compiled\is-docker\package.json' }
注:最初执行npx create-next-app @latest报错是因为@latest被识别为项目名称,违反npm命名规则,正确调用最新版脚手架的命令应为npx create-next-app@latest(无空格),此为次要问题。
解决步骤
针对Windows 10 + Node.js 18.13环境,按以下方案尝试:
1. 调整Windows文件句柄上限
Windows默认进程文件句柄配额较低,可通过注册表修改:
- 按下
Win+R输入regedit打开注册表编辑器 - 导航至
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems - 找到
Windows键,双击进入编辑字符串界面 - 修改
SharedSection参数的第三个数值(默认多为512)为更大值,例如4096
示例修改后:SharedSection=1024,20480,4096 - 保存后重启电脑生效
2. 清理缓存并重新创建项目
- 删除已生成的
form文件夹 - 执行命令清理npm缓存:
npm cache clean --force - 用命令行参数直接指定配置创建项目,跳过交互式步骤:
npx create-next-app@latest form --typescript --eslint --src-dir --app --import-alias "@/*"
3. 升级Node.js版本
Node.js 18.13属于较旧的18.x分支,后续版本修复了Windows平台下多个文件句柄相关问题,建议升级至18.x最新稳定版或20.x LTS版本:
- 卸载当前Node.js,从官方渠道下载对应版本安装
- 验证版本:
node -v
4. 关闭后台占用进程
- 打开任务管理器,关闭不必要的后台程序(如杀毒软件、文件同步工具等),此类程序可能占用大量文件句柄
- 确保无其他进程正在访问项目目录文件
验证
完成上述操作后,重新执行项目创建命令,确认模板初始化是否顺利完成。
内容的提问来源于stack exchange,提问作者Filimer
相关产品推荐
相关产品推荐

