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 条记录

5分钟Serverless实践 | 构建无服务器的敏感词过滤后端系统

中招了!Serverless常见的5个误区

工商银行 Serverless 函数计算落地实践

5分钟Serverless实践 | 构建无服务器的敏感词过滤后端系统