NextJs:Serverless 函数超过了 50mb 的最大大小限制
Posted
技术标签:
【中文标题】NextJs:Serverless 函数超过了 50mb 的最大大小限制【英文标题】:NextJs: The Serverless Function exceeds the maximum size limit of 50mb 【发布时间】:2021-06-12 09:05:20 【问题描述】:我是 NextJs 的新手,尝试将我的项目部署到 Vercel 时出现以下错误:
错误! Serverless 函数“api/auth”为 50.55mb,超过了 50mb 的最大大小限制。
我花了很多时间试图找到一个正确的答案,但我没有找到任何答案。这是我正在发出的 api 请求的代码:
const auth: adminAuth = require("firebase/admin");
export default async function auth(req, res)
const tokenId = req.query.token;
return new Promise((resolve) =>
adminAuth
.verifyIdToken(tokenId)
.then((user) =>
res.json(user);
resolve();
)
.catch(() =>
res.status(302).send("Invalid authentication");
resolve();
);
);
如果有人可以帮助我,我将非常感激,谢谢大家!
【问题讨论】:
另外,删除文件时错误消失,所以我不知道在部署之前是否需要进行一些配置。 【参考方案1】:我一直在处理同样的问题。似乎在捆绑无服务器功能时,vercel 正在拉入项目中的所有资产。所以 50.55MB 可能是您当前整个构建的大小。我正在研究如何只在 vercel.json 中包含某些文件,但到目前为止还没有弄清楚如何做到这一点。目前,您可能只需从公共资产中删除一些文件即可达到限制。
【讨论】:
感谢您的回复,我从来没有弄清楚问题出在哪里,但是对于我的场景,删除.next
和 .vercel
文件夹并再次构建项目解决了这个问题。我认为在我的某些情况下,该文件夹可以缓存一些资产或以前的页面信息。但正如您所提到的,我认为一个好主意是在 vercel.json
文件中包含特定文件,以便更好地控制部署构建。【参考方案2】:
您可以添加.vercelignore
文件来避免这种情况
参考:https://vercel.com/guides/prevent-uploading-sourcepaths-with-vercelignore
# Ignore everything (folders and files) on root only
/*
!api
!vercel.json
!*.html
!*.css
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于NextJs:Serverless 函数超过了 50mb 的最大大小限制的主要内容,如果未能解决你的问题,请参考以下文章
节省 58% IT 成本,调用函数计算超过 30 亿次,石墨文档的 Serverless 实践
NextJS、Apollo、WPGraphQL & 组合或检索超过 100 条记录