Javascript 如何在构建完成后编辑.env文件
我创建了react应用程序网页 使用自定义环境变量Javascript 如何在构建完成后编辑.env文件,javascript,reactjs,Javascript,Reactjs,我创建了react应用程序网页 使用自定义环境变量 问题是当我构建脚本时 并更改.env变量。网站中没有任何更改 .env文件: REACT\u APP\u SITENAME=SITENAME APP引用文档: 环境变量在构建期间嵌入 无法在运行时应用环境更改 以下是如何在运行时使用环境的示例: 构建react应用程序后,所有代码都是静态的,无法更改。我认为向react应用程序发送一些动态数据的唯一解决方案是,为运行应用程序的每个系统创建一个特殊文件,并将其直接加载到index.html中,或
问题是当我构建脚本时 并更改.env变量。网站中没有任何更改
.env
文件:
REACT\u APP\u SITENAME=SITENAME APP
引用文档:
环境变量在构建期间嵌入
无法在运行时应用环境更改
以下是如何在运行时使用环境的示例:
构建react应用程序后,所有代码都是静态的,无法更改。我认为向react应用程序发送一些动态数据的唯一解决方案是,为运行应用程序的每个系统创建一个特殊文件,并将其直接加载到index.html中,或者动态创建该文件的内容。 因此,当您在public/index.html中使用create react应用程序时,请添加如下内容:
<head>
...
<script src="https://www.example.com/envconfig.js" type="text/javascript">
</script>
...
</head>
该文件也可以由PHP、Java或任何其他后端服务动态创建。只需确保回答为有效的Javascript即可
在你的React应用程序index.js、app.js或任何你可以访问此变量的地方,因为它是全局变量:
const appConfig = window.globalConfig || { siteName: process.env.REACT_APP_SITENAME}
如果globalConfig
不可用(可能在开发过程中),您就可以使用静态环境配置。
现在,您可以以任何方式使用appConfig,并通过redux、上下文或属性将其提供给组件
最后要提到的是,在执行所有React代码之前,必须确保已加载配置文件。因此,应该在所有创建的React文件之前加载该文件。为什么要在生成后更改它?@Mihai,因为我想出售该脚本以及buy它如何更改和自定义应用程序:d当您更改.env文件时,您需要重新生成该文件以应用更改。谢谢,有没有办法在构建后配置和定制应用程序?只有在运行时使用JavaScript。如果这是你的背景,那么这不是Java。我的背景是php:D。。我怎么做?比如从json获取站点名称或站点徽标图像url并将其放入不再接受的答案中?为什么?我可以进一步提供帮助吗?感谢您的时间,我如何在构建后配置网站:(如站点名称或任何ThinkThaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa而不是使用自动关闭版本。没有它,此解决方案在Chrome中无法正常工作。@Martinemec3您是对的,谢谢您的提及。我已经更正了我的答案。
const appConfig = window.globalConfig || { siteName: process.env.REACT_APP_SITENAME}