You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS部署Heroku报错:全局线程池未初始化问题求助

解决Heroku部署NextJS应用时的SWC线程池初始化错误

问题重现

执行git push heroku main时触发以下错误:

panicked at 'the global thread pool has not been initialized.: threadpool builderror { kind: ioerror(error { kind: unsupported, message: "operation not supported on this platform" }) }'

同时日志显示Next.js无法找到适配Heroku Linux平台的SWC二进制包,被迫启用实验性的WASM版本。

解决方案

方案一:关闭SWC Minify(快速修复)

修改next.config.js,将swcMinify设为false,让Next.js回退到Terser进行代码压缩,绕过SWC WASM的线程池问题:

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  swcMinify: false, // 禁用SWC压缩,改用Terser
};

module.exports = nextConfig;

方案二:修复SWC平台依赖(保留SWC性能,推荐)

  1. 生成适配Heroku的lockfile:

    • 在本地Linux环境(或用Docker模拟Ubuntu环境)执行npm install,此时会自动安装@next/swc-linux-x64-gnu等平台专属依赖
    • 提交更新后的package-lock.json到Git仓库
    • 重新执行git push heroku main
  2. 升级Next.js版本:

    • 将package.json中的next版本升级到12.3.0及以上,这些版本修复了SWC WASM在部分平台的线程池初始化bug
    • 执行npm install更新依赖,提交后重新部署

错误原因分析

从日志细节可以判断:

  • Heroku构建时提示Found lockfile missing swc dependencies,说明本地生成的lockfile缺少Linux平台的SWC二进制包依赖
  • 系统被迫加载实验性的SWC WASM版本,而该版本在Heroku的容器环境中不支持线程池初始化,最终触发panic崩溃

内容的提问来源于stack exchange,提问作者Raghav Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:05:53