Reactjs 在不同领域处理某些项目的最佳方法,例如.com和.co.uk

Reactjs 在不同领域处理某些项目的最佳方法,例如.com和.co.uk,reactjs,react-redux,react-router,Reactjs,React Redux,React Router,我有一个CreateReactApp项目,它将指向两个不同的域:.com和.co.uk 我想做一些本地化,例如如果.co.uk货币将设置为双关语,电子邮件地址将转到英国邮箱等 最好的方法是什么?我认为window.location.href值是通过在App.js的上下文中包装我的路由传递的,但在使用效果方面存在一些问题,不确定这是否是最有效的方法。最好的方法是使用环境变量-这也允许对任一版本进行轻松调试。这将需要您为每个网站更新构建两个项目-一个版本用于.co.uk,另一个版本用于.com 可以

我有一个Create
React
App项目,它将指向两个不同的域:
.com
.co.uk

我想做一些本地化,例如如果
.co.uk
货币将设置为双关语,电子邮件地址将转到英国邮箱等


最好的方法是什么?我认为
window.location.href
值是通过在
App.js
的上下文中包装我的路由传递的,但在使用效果方面存在一些问题,不确定这是否是最有效的方法。

最好的方法是使用环境变量-这也允许对任一版本进行轻松调试。这将需要您为每个网站更新构建两个项目-一个版本用于.co.uk,另一个版本用于.com

可以通过
.env
文件设置环境变量(取决于您是否希望它是本地的,您可以使用
.env.local
,如果您希望它仅在生产中使用,您可以使用
.env.production
,如果您希望使生产值保持本地,您可以使用
.env.production.local
)或者通过在构建之前预先设置环境值,如so
REACT\u APP\u COUNTRY=uk纱线构建

要在应用程序中访问变量,您必须确保它们以
REACT\u APP\u
开头。您可以使用
process.env.REACT\u APP\u COUNTRY
在项目中访问它们(您不需要导入/安装任何库)


如果你有一个CI/CD设置,这将更容易-你只需要创建两个单独的管道,将带有
REACT\u APP\u COUNTRY=uk
的版本部署到.co.uk网站,将带有
REACT\u APP\u COUNTRY=us
的版本部署到.com网站。

太好了,我如何设置国家/地区,并在应用程序中知道域是com还是.co.uk来设置env变量?正如我提到的,您需要在构建时设置变量,并将正确的版本部署到给定的子域。您将需要两个独立的构建。