-
- Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Description
Hello
I have a problem with connecting two Vue (version 3.2.31) applications from vue-cli (version 5.0.1) by module-federation (vuejs/vue-cli#6823 and #307)
Somebody can add a working example to this repo?
Example fust bootstrap
npm install -g @vue/cli@5.x.x; vue create vue3-cli-demo --default; cd vue3-cli-demo; npm i webpack@5.x.x --save-dev;
src/index.js
import('./main');
vue.config.js (need to do something with this)
const { defineConfig } = require('@vue/cli-service') const webpack = require('webpack') module.exports = defineConfig({ pages: { index: { entry: './src/index.js', }, }, configureWebpack: { plugins: [ new webpack.container.ModuleFederationPlugin({ name: 'vue_cli_demo', filename: 'remoteEntry.js', exposes: { './HelloWorld.vue': './src/components/HelloWorld.vue', }, // eslint-disable-next-line global-require // shared: require('./package.json').dependencies, shared: { vue: { singleton: true, }, }, }), ], }, transpileDependencies: true })
and for host same steps
vue.config.js
module.exports = defineConfig({ // ... plugins: [ new webpack.container.ModuleFederationPlugin({ name: 'other_project', filename: 'remoteEntry.js', remotes: { vue_cli_demo: 'vue_cli_demo@http://localhost:8080/remoteEntry.js', }, shared: { /*...*/ } }, }), ], }, });
and somewhere in project
const HelloWorld = defineAsyncComponent(() => import('vue_cli_demo/HelloWorld.vue'));
mityi
Metadata
Metadata
Assignees
Labels
No labels