我有一个前端项目设置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
.
对于这个问题,我只看到两种类型的解决方案:
- 分两步进行构建。首先 with
--no-prerender
ani18n.config.js
利用.http-backend
然后--prerender
with ani18n.config.js
利用fs-backend
. 这里的问题是两个构建之间的哈希值不同,所以我不能简单地用另一个构建复制预渲染的路由。 - 在构建期间设置一个可以提供这些翻译的 http 服务器。这本身是可能的,但这是一个相当脆弱的解决方法。
有一个链式后端的概念,i18next
它允许我定义一个回退,但在浏览器的上下文中,i18next-fs-backend
作为主要来源有什么意义?
在这个阶段对我有很大帮助的是,如果有人能指出
- 要么我没有考虑第三种可行的选择
- 要么我误解了一些做链式后端的方式
- 要么确认我是正确的,要么可以提出一个强有力的案例,
preact-cli
需要允许我们分两部分进行构建。