找不到 next 模块
您可能会在 CloudWatch 日志中遇到这个错误:Cannot find module 'next'
。
这通常发生在 monorepo 项目中且存在多个锁文件的情况下。
请确保您的项目根目录下只有一个锁文件。
next-config 和 middleware 中的 headers、redirect、rewrites 在 next 13.4.12+ 版本中不工作
如果您使用的 nextjs 版本 >= 13.4.12,则需要使用 open-next 版本 >= 2.1
使用 Sentry 时 API 路由返回空响应
如果您正在使用 Sentry,API 路由可能会返回空响应体。可以尝试配置 Sentry 使其忽略 API 路由。更多信息请参阅此处 (opens in a new tab)
ISR 页面出现 s-maxage=2, stale-while-revalidate=2592000
缓存控制头
根据 ISR 的工作原理,在等待重新验证期间,页面会使用这个缓存控制头提供服务。这可以防止在重新验证完成时服务器因大量请求而过载。更多详情请参阅这里。
解压后大小必须小于 262144000 字节
AWS Lambda 的解压后大小限制为 250MB。如果您的应用超过此限制,很可能是使用了不适合 serverless 的大型 node_module 库,或者打包了大型的开发依赖项。
例如,pdfjs
的 canvas
可选依赖项就占用了 180MB。更多细节请参阅此文档。
注意:过大的包体积会显著增加冷启动时间。