Next.js部署报错:Hobby计划Serverless Functions数量超限排查
问题分析:Vercel Hobby Plan 超出Serverless Functions数量限制
一、哪些内容会被算作Vercel部署中的Serverless Functions?
在Vercel上部署Next.js项目时,以下内容会被统计为Serverless Functions:
- Next.js API路由:
pages/api目录下的每个文件(包括动态路由、catch-all路由)都会被打包成独立的Serverless Function,比如你的/api/auth/[...auth0]、/api/auth/callback等。 - 服务端渲染页面:任何使用
getServerSideProps或getInitialProps的页面,每个这类页面会生成一个单独的Serverless Function。 - 根目录
api文件夹的自定义函数:如果项目根目录存在独立的api文件夹(而非Next.js的pages/api),里面的函数也会被Vercel识别为Serverless Functions(这也是你构建日志中警告的来源)。 - Next.js 13+ App Router相关:App Router中的Route Handlers、带服务端逻辑的Server Components也会生成Serverless Functions(你用的是Pages Router,可作为参考)。
二、为什么会触发超出12个的报错?
你提到自己只有6个API路由,但构建日志中重复出现了13次"Using TypeScript 4.7.4"——这通常对应Vercel正在为每个Serverless Function处理TypeScript配置,说明实际生成的Serverless Functions数量已经超过12个。可能的原因包括:
- 根目录存在额外的
api文件夹:构建日志的警告明确提示,项目里可能有根目录下的api文件夹,里面的函数会被额外统计,加上pages/api的6个,总数就会突破12。 - Next.js版本的潜在bug:你使用的Next.js 13.0.3是早期版本,可能存在静态页面被误判为需要服务端渲染的问题,导致额外生成Serverless Functions。
- 隐藏的服务端逻辑:检查项目中是否有未注意到的服务端逻辑,比如自定义错误页面、第三方库自动生成的API路由等。
解决建议
- 检查项目根目录是否存在
api文件夹,将里面的函数迁移到pages/api目录,或删除不必要的函数。 - 升级Next.js到较新的稳定版本,修复早期版本的潜在bug。
- 清理构建缓存后重新部署,避免缓存导致的异常打包。
内容的提问来源于stack exchange,提问作者axelmukwena
相关产品推荐
相关产品推荐

