代码之家  ›  专栏  ›  技术社区  ›  Kevin Johnson

如何配置i18n.config.js,以便`precast-build--prerenderUrls/prerender urls.js成功吗?

  •  0
  • Kevin Johnson  · 技术社区  · 3 年前

    我有一个前端项目设置 preact-cli ,利用 i18next 具有 http -后端。此配置是为了方便应用程序在生产中运行的CDN按需提供翻译服务。到目前为止,我可以通过以下操作实现:

    • npx preact build --no-prerender

    随后部署到 AWS Cloudfront

    现在我想静态地 prerender 一些主要路线,但遗憾的是,一个天真的: preact build --prerenderUrls ./prerender-urls.js 不起作用。原因是一旦它要做的步骤 预投标者 -在这些路线上,它正试图利用 i18next-http-backend 在没有运行http服务器的情况下。在这一点上, preact build 只是一直挂着(好像我在做 preact build --analyze ).

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

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

    1. 分两步进行构建。首先使用 --no-prerender 带有 i18n.config.js 利用 http后端 然后与 --prerender 带有 i18n.config.js 利用 fs-backend 。这里的问题是,两个构建之间的哈希不同,所以我不能简单地用另一个构建复制预先提交的路由。
    2. 在构建过程中设置一个http服务器,以便为这些翻译提供服务。这本身是可能的,但这是一个相当脆弱的解决方案。

    有一个链接后端的概念 i18下一个 这将允许我定义回退,但在浏览器的上下文中 i18next fs后端 作为主要来源?

    如果有人能指出这一点,在现阶段对我会有很大帮助

    1. 要么有第三个可行的选择,我没有考虑
    2. 要么我误解了做链式后端的某种方式
    3. 要么确认我是正确的,要么可以提出有力的理由 预作用cli 需要允许我们分两部分进行构建。
    0 回复  |  直到 3 年前
    推荐文章