服务器执行npm run build编译失败,线程池相关错误求助
解决Next.js部署时
npm run build的ThreadPoolBuildError问题 问题描述
部署应用到托管服务器时,执行npm run build出现以下编译错误:
Failed to compile. ./node_modules/next/dist/pages/_app.js Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: IOError(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }) } ./node_modules/next/dist/pages/_document.js Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized } ./node_modules/next/dist/pages/_error.js Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized } Import trace for requested module: ./node_modules/next/dist/pages/_error.js ./app/[...uri]/loading.js Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized } Import trace for requested module: ./app/[...uri]/loading.js ./app/[...uri]/page.js Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized } Import trace for requested module: ./app/[...uri]/page.js
本地环境编译正常,已尝试重装node_modules并删除package-lock.json。
解决方法
- 限制Node.js线程池大小:在构建命令前添加环境变量,减少线程池并发数避免资源竞争,执行命令:
若服务器内存不足,可同时调整内存限制:NODE_OPTIONS="--uv-threadpool-size=4" npm run buildNODE_OPTIONS="--max-old-space-size=4096 --uv-threadpool-size=4" npm run build - 清除Next.js构建缓存:执行命令清除旧缓存后重新构建:
npx next clean && npm run build - 确保依赖版本一致:同步本地的
package-lock.json到服务器,重新安装依赖,保证服务器与本地的Next.js及相关依赖版本完全相同。 - 检查服务器资源:错误中的
Resource temporarily unavailable提示服务器CPU或内存不足,可联系托管服务商确认资源限制,或临时升级服务器配置后重试。 - 更换包管理器:若npm构建仍有问题,尝试用pnpm或yarn重新安装依赖并构建:
# 使用pnpm pnpm install && pnpm run build # 使用yarn yarn install && yarn run build
内容的提问来源于stack exchange,提问作者Dav1104
相关产品推荐
相关产品推荐

