aws-lambda - next-i18next 的错误和在 Vercel 上的部署(最近)

标签 aws-lambda next.js serverless vercel next-i18next

更新 2:

这可能与 this PR 有关其中 Assets 已作为依赖项被删除。

更新 1:

设法将反向 shell 获取到无服务器函数中,看起来确实不再有 public 文件夹:

enter image description here

enter image description here

提供环境信息

"next": "12.2.5", // Also tested on 12.2.6-canary.7 and 12.1.6
"next-i18next": "12.0.0", // Also tested on 10.5.0
"react": "18.2.0", // Also tested on 17.0.2
"react-dom": "18.2.0" // Also tested on 17.0.2

您如何部署您的应用程序?

维塞尔

错误描述

上下文

我们在 next-i18next 周围遇到了一个错误,该错误导致 catch-all 路由的无服务器崩溃。我们在欧洲中部时间周一 14:00 左右首次注意到此错误,并认为它可能与无服务器运行时/文件结构的更改有关,因为过去可以正常工作的旧部署在重新部署时停止工作。

其他一些人似乎也遇到了同样的错误。另见此处:

我们尝试了什么

因此我们升级了 next 和 next-i18next 的版本(就像其他一些人所做的那样)。 对于最新的 next.js 和 next-i18next 版本,翻译似乎只适用于非常特殊的情况。

我们创建了一个最小的可复制部署 (Repo),我们通过将它们放入 getStaticPaths 来预构建两个页面:

这两个页​​面在直接打开时都不使用翻译。

但是,当第一次导航到 index.js然后点击两个页面的链接使用正确的翻译。

注意:翻译会在刷新时中断。

设置说明

  • 捕获页面文件夹中的所有路由
  • 页面设置为静态网站生成
  • 已设置默认语言环境
  • 增量静态再生开启

预期行为

工作翻译

复制链接

示例 repo :https://github.com/everdropde/ed-i18n-bug Vercel 部署示例:https://ed-i18n-bug.vercel.app/de

重现步骤

  1. 克隆 Repo 并将其部署到 Vercel
  2. 点击页面上的任何链接

最佳答案

如果您启用了 outputFileTracing 并使用了最新版本的 Next.js,那么这应该适用于最新的 CLI 版本

关于aws-lambda - next-i18next 的错误和在 Vercel 上的部署(最近),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73554073/

相关文章:

html - 将 div 的当前滚动保存到本地存储,React

reactjs - 在 Next.js App 中只为服务器端渲染(SSR)导入 NPM 包

amazon-web-services - 在生产中禁用 sls 插件(每个阶段有不同的插件?)

serverless-framework - 无服务器 - aws - SecureLambdaFunction env

amazon-web-services - 一个 lambda 调用另一个 lambda 是否通过互联网?

java - 开发 AWS Lambda 函数时无法理解要使用哪个 Java SDK

webpack - Intl Polyfill + Next.js SSR 应用

google-cloud-functions - page.goto() 上的云函数超时

amazon-web-services - 通过 Labmbda 代理在 API 网关中记录请求/响应

aws-lambda - CloudFormation - 无法在 StepFunctions StateMachine 的 DefinitionString 中导入 lambda arn