0

我有一个前端项目设置preact-cli,它利用i18next-backend http。此配置是为了便于从 CDN 按需提供翻译服务,该应用程序将在生产环境中运行。到目前为止,我可以通过以下方式使其工作:

  • npx preact build --no-prerender

随后部署到AWS Cloudfront

现在我想静态prerender一些主要的路线,但很遗憾,一个幼稚的:preact build --prerenderUrls ./prerender-urls.js行不通。这样做的原因是,一旦要执行这些路由的步骤,它就会在没有运行 http 服务器的情况下prerender尝试利用。i18next-http-backend在这一点上,preact build继续挂起(好像我在做一个preact build --analyze)。

因此,对于该步骤,我需要i18next-fs-backend改用。遗憾的是,虽然这适用于在 CI/CD 服务器上为这些prerendered路由捆绑翻译,但它不适用于需要通过http-backend.

对于这个问题,我只看到两种类型的解决方案:

  1. 分两步进行构建。首先 with --no-prerenderani18n.config.js利用.http-backend然后--prerenderwith ani18n.config.js利用fs-backend. 这里的问题是两个构建之间的哈希值不同,所以我不能简单地用另一个构建复制预渲染的路由。
  2. 在构建期间设置一个可以提供这些翻译的 http 服务器。这本身是可能的,但这是一个相当脆弱的解决方法。

有一个链式后端的概念,i18next它允许我定义一个回退,但在浏览器的上下文中,i18next-fs-backend作为主要来源有什么意义?

在这个阶段对我有很大帮助的是,如果有人能指出

  1. 要么我没有考虑第三种可行的选择
  2. 要么我误解了一些做链式后端的方式
  3. 要么确认我是正确的,要么可以提出一个强有力的案例,preact-cli需要允许我们分两部分进行构建。
4

0 回答 0