module-federation / module-federation-examples

Implementation examples of module federation , by the creators of module federation
https://module-federation.io/
MIT License
5.52k stars 1.73k forks source link

【vue3-demo】Exporting a component with the same path and name as the host application replaces the host application component when the remote component is used. #4255

Open lemontree2000 opened 3 weeks ago

lemontree2000 commented 3 weeks ago

Description

I'm using the vue3-demo with the ,Exporting a component with the same path and name as the host application will overwrite the host application component when the remote component is used.

issues

provider directory

image image

provider config

    new ModuleFederationPlugin({
      name: 'home',
      filename: 'remoteEntry.js',
      remotes: {
        home: 'home@http://localhost:3002/remoteEntry.js',
      },
      exposes: {
        './Content': './src/components/Content',
        './Button': './src/components/Button',
        './Layout': './src/components/Layout',
        './Self': './src/Self',
      },
      shared: {
        vue: {
          singleton: true,
        },
      },
    }),

consumer directory

image image

consumer config

    new ModuleFederationPlugin({
      name: 'layout',
      filename: 'remoteEntry.js',
      remotes: {
        home: 'home@http://localhost:3002/remoteEntry.js',
      },
      exposes: {},
      shared: {
        vue: {
          singleton: true,
        },
      },
    }),

use remote component

image

Expect

It is expected that there should be two lines of text each: Self component. Self component from remote;

Practice

The actual two lines of text both show: Self component from remote; It looks like the remote component overrides the local component image

Reproducible code

https://github.com/lemontree2000/module-federation-vue3-demo

lemontree2000 commented 3 weeks ago

There seems to be no problem after the file name and path are changed