我的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