Your cart is currently empty!
Quasar Framework: Vite Module Federation
Create two projects called remote-app and host-app:
npm init quasar
Install the plugin in remote-app and host-app:
npm install @originjs/vite-plugin-federation --save-dev # or yarn add @originjs/vite-plugin-federation --dev
Create a component in remote-app called HelloWorld.vue:
<template> <h1>Hello from QuasarJS</h1> </template>
Inside remote-app open quasar.config.js:
module.exports = configure(function (/* ctx */) {
return {
...
build: {
...
vitePlugins: [
[ '@originjs/vite-plugin-federation', {
name: 'quasar_vite_remote',
filename: 'remoteEntry.js',
exposes: {
'./Hello': './src/components/HelloWorld.vue'
}
} ]
]
...
}
...
}
}Inside host-app quasar.config.js:
module.exports = configure(function (/* ctx */) {
return {
...
build: {
target: {
browser: [ 'esnext' ],
...
},
...
vitePlugins: [
[ '@originjs/vite-plugin-federation', {
name: 'quasar_vite_host',
filename: 'remoteEntry.js',
remotes: {
remote: 'http://localhost:9000/dist/spa/assets/remoteEntry.js'
}
} ]
],
...
}
...
}
}Inside host-app App.vue:
<template>
<Hello />
</template>
<script>
import { defineComponent } from 'vue'
import Hello from 'aaa/Hello'
export default defineComponent({
name: 'App',
components: {
Hello
}
})
</script>Start the remote-app. This will assign port 9000 to remote-app.
Start the host-app. This will assign port 9001 to host-app.

Leave a Reply