React / Webpack从捆绑软件中排除可更新的配置文件

时间:2018-10-01 05:26:26

标签: reactjs docker webpack kubernetes

我的React应用程序使用webpack捆绑资源,然后将资源放入Docker映像中进行部署。我有一组要添加到JSON文件的配置变量,我的应用程序可以在运行时读取这些变量。例如,API密钥或API URL,它们可以随时更改。该JSON文件将根据需要通过Kubernetes Configmap和Secrets更新。

我看过很多帖子和解决方案,但似乎都无法正常工作。

例如,如果我尝试以下链接的解决方案,则JSON文件将与其他资源捆绑在一起。我必须重新启动webpack / build才能使JSON文件中的更改反映在我的应用程序中。

Webpack -- include configuration file as external resource

How to store Configuration file and read it using React

Any way to use webpack to load a resource at runtime?

处理我的要求的最佳方法是什么?

我的项目结构如下:

├── config
│   └── jsonConfig.prod.json (This will be updated on the server)
├── src (My react application code which gets bundled via webpack)

jsonConfig.prod.json的内容:

{
  "name": "my-app"
}

我的webpack.config.js

externals: {
  'jsonConfig': JSON.stringify(PRODUCTION ? require('./jsonConfig.prod.json') : require('./jsonConfig.dev.json'))
}

在我的代码中(在npm run build之后):

import * as jsonConfig from 'jsonConfig';
console.log(jsonConfig.name); // my-app

我更改了jsonConfig.prod.json的内容:

{
  "name": "my-app2"
}

在我的代码中(与之前的版本相同):

import * as jsonConfig from 'jsonConfig';
console.log(jsonConfig.name); // Still my-app

0 个答案:

没有答案