Dotenv Webpack-当我在运行时更改系统环境变量时,更改不会在应用程序上受到影响

我使用react,webpack,docker和AWS构建了一个Web应用程序。

我创建了一个依赖于环境变量的功能。因此,如果环境变量的值为true,则该功能将显示在前端。

问题是,当我更改服务器上的环境变量(Webpack已完成构建应用程序,该应用程序已部署并运行)时,我的功能未显示。我猜是由于该应用无法读取系统环境变量上的值更改。

我该如何实现?有可能做到吗?

=====

我使用 dotenv webpack 来管理我的环境变量。我已经将 systemvars 设置为 true ,以检测系统或.env文件中的所有环境变量。

=====

那我为什么要这样做,因为我不想发出请求请求来为环境变量推送新值。我只想保留环境变量名称,如果准备好部署该功能,则直接从服务器更改该值。而且如果有错误,我只需要将环境变量更改为某种东西,然后功能就关闭了。

niejiangmin123 回答:Dotenv Webpack-当我在运行时更改系统环境变量时,更改不会在应用程序上受到影响

您无法更改环境变量。 EVN变量在编译/ Webpack加载时加载。因此,一旦应用启动,您将无法更改process.env

@jonrsharpe解释的解决方案。您需要创建某种数据库。它可以是内存,文件或数据库。您从中读取数据。公开一个API,以更新数据库。

快递样本:

global.enableFeature = false

app.post("/updateFeatureToggle",(req,res) => {
  const enableFeature = req.body.enableFeature

  global.enableFeature = enableFeature
  res.send({success: "OK"})
})

在另一个文件中,从global.enableFeature中读取。这是基于内存的。

本文链接:https://www.f2er.com/2534578.html

大家都在问