Socket
Book a DemoInstallSign in
Socket

bout

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bout

Tiny framework for micro frontend installation and communication. Creates simple way to inject a microfrontend pattern into existing SPA application.

latest
Source
npmnpm
Version
0.3.0
Version published
Maintainers
1
Created
Source

Bout Bout Licence

Tiny framework for micro frontend installation and communication. Creates simple way to inject a microfrontend pattern into existing SPA application.

FrameworkParent AppMicrofrontend
Vue2YesNot yet
Vue3Yes*Yes
ReactYes*Not yet
AngularYes*Not yet
SvetleYes*Not yet

* - Framework should work flawlessly for any framework in the parent app, but not everywhere this was tested

Name

Bout /bu/ means in french a scrap of something, a very small piece.

Installation

$ yarn add bout

Getting started

Parent App

In your parent app, you need to initialize the library:

import { initMicroApps } from 'bout'

initMicroApps()

Child App

On the other hand, in your child app, you need to initialize the microfrontend:

// main.ts
import { createApp } from 'vue'
import { createVue3MicroApp, registerMicroApp } from 'bout'

const appFactory = () => {
  return createApp(App)
}

const microApp = createVue3MicroApp('ExampleApp', appFactory)
registerMicroApp(microApp)

Second importation is to make sure, that child app creates the public asset-manifest.json file. It should be available in the public folder.

For Vite, you should do this mannualy, with following settings in vite-config.ts:

import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig({
  // Other properties here...
  build: {
    manifest: false,
    cssCodeSplit: false,
    lib: {
      name: 'Test',
      entry: './src/main.ts',
      fileName: 'bundle',
    },
  },,
})

asset-manifest.json will look like this:

{
  "main.js": "bundle.umd.js",
  "style.css": "style.css"
}

Connecting the apps

When your setup is complete, all you have to do is to call installApp(appHost) in the parent app. This will automatically install the microfrontend, and prepare it to mount. After installation you can call .mount(containerID) on the app to mount it.

Example:

const host = 'http://example.com'
const app = await installApp(host)
app.mount('container-id')

App should be properly rendered!

Communication between apps

TODO

Keywords

bout

FAQs

Package last updated on 26 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.