Vue CLI 模块联合是在主机应用程序中找不到组件
Vue CLI Module Federation is component is not found in the Host App
我正在两个 Vue CLI 项目中实现模块联合
容器应用程序位于:http://localhost:8082/
组件应用程序位于:http://localhost:8083/
我在两个应用程序中都设置了 ModuleFederation 插件,我认为这没有问题:
组件:
plugins: [
new ModuleFederationPlugin({
name: "data",
filename: "remoteEntry.js",
remotes: {},
exposes: {
'./Bata' : './src/Bata.vue',
},
shared: {}
}),
],
容器:
plugins: [
new ModuleFederationPlugin({
name: "appcontainer",
filename: "remoteEntry.js",
remotes: {
"data" : "data@http://localhost:8083/remoteEntry.js" // Test app url see above
},
exposes: {},
shared: {}
}),
],
组件在以下位置提供服务:http://localhost:8083/remoteEntry.js:
我遇到的问题是当我尝试在容器应用程序中使用该组件时:
似乎找不到该组件,我注意到对容器的请求转到容器应用程序而不是组件应用程序。不确定这是问题还是正常行为,还有其他问题无法正常工作。
8082 是容器应用程序,如果我用 8083(组件应用程序)打开相同的 url,组件就在那里。
如果 PublicPath 不正确,您会收到此错误。您可以通过将其设置为“自动”来解决此问题,如下所示。 "auto" 将自动确定 public 路径。
output: {
publicPath: 'auto',
},
详情请参考下方linkOutput | webpack
我正在两个 Vue CLI 项目中实现模块联合
容器应用程序位于:http://localhost:8082/ 组件应用程序位于:http://localhost:8083/ 我在两个应用程序中都设置了 ModuleFederation 插件,我认为这没有问题: 组件:
plugins: [
new ModuleFederationPlugin({
name: "data",
filename: "remoteEntry.js",
remotes: {},
exposes: {
'./Bata' : './src/Bata.vue',
},
shared: {}
}),
],
容器:
plugins: [
new ModuleFederationPlugin({
name: "appcontainer",
filename: "remoteEntry.js",
remotes: {
"data" : "data@http://localhost:8083/remoteEntry.js" // Test app url see above
},
exposes: {},
shared: {}
}),
],
组件在以下位置提供服务:http://localhost:8083/remoteEntry.js:
我遇到的问题是当我尝试在容器应用程序中使用该组件时:
似乎找不到该组件,我注意到对容器的请求转到容器应用程序而不是组件应用程序。不确定这是问题还是正常行为,还有其他问题无法正常工作。
8082 是容器应用程序,如果我用 8083(组件应用程序)打开相同的 url,组件就在那里。
如果 PublicPath 不正确,您会收到此错误。您可以通过将其设置为“自动”来解决此问题,如下所示。 "auto" 将自动确定 public 路径。
output: {
publicPath: 'auto',
},
详情请参考下方linkOutput | webpack