cod*_*dev 6 javascript reactjs webpack webpack-5 webpack-module-federation
我已经设置了一个使用多个远程应用程序的容器应用程序。问题是我需要远程 URL 根据其所处的环境(测试、开发、质量检查)而动态变化。正如您所看到的,我的车辆远程 URL 已硬编码,指向开发人员。我需要根据环境更新此 URL。如果可能的话我想使用环境变量。我找不到明确的答案,希望有人能给我一些建议。
const devConfig = {
mode: "development",
devServer: {
port: 3000,
historyApiFallback: true,
},
plugins: [
new ModuleFederationPlugin({
name: "container",
filename: "remoteEntry.js",
remotes: {
vehicle:
"vehicle@https://vehicle-mf-dev.com/remoteEntry.js",
}
exposes: {},
shared: {
...deps,
react: {
singleton: true,
requiredVersion: deps.react,
},
"react-dom": {
singleton: true,
requiredVersion: deps["react-dom"],
},
},
}),
],
};Run Code Online (Sandbox Code Playgroud)
您应该使用环境变量。然后,只需将您的环境替换为您的环境变量即可。就是说:
1-创建一个环境变量。您可以使用.env 文件或创建环境变量。例如,在 UNIX 系统中您可以执行export API=https://vehicle-mf-dev.com.
更多信息:https://nodejs.dev/en/learn/how-to-read-environment-variables-from-nodejs/
2-然后您可以在代码中使用此环境变量:
const devConfig = {
mode: "development",
devServer: {
port: 3000,
historyApiFallback: true,
},
plugins: [
new ModuleFederationPlugin({
name: "container",
filename: "remoteEntry.js",
remotes: {
vehicle:
`vehicle@${process.env.API}/remoteEntry.js`,
}
exposes: {},
shared: {
...deps,
react: {
singleton: true,
requiredVersion: deps.react,
},
"react-dom": {
singleton: true,
requiredVersion: deps["react-dom"],
},
},
}),
],
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4932 次 |
| 最近记录: |