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