Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/micro-lc/micro-lc

An open source micro-frontend orchestrator
https://github.com/micro-lc/micro-lc

hacktoberfest js lit microfrontends orchestrator qiankun single-spa webcomponents

Last synced: about 1 month ago
JSON representation

An open source micro-frontend orchestrator

Awesome Lists containing this project

README

        


micro-lc


Mia-Platform









npm version


npm downloads


License


ts

## Introduction

micro-lc is an open source micro-frontend orchestrator for building flexible, multi-tenant frontend applications.
And [much more](https://micro-lc.io/)!

**Tip**: use the official **[playground](https://micro-lc.io/playground/)** to try micro-lc immediately.

An introduction about micro frontend and how micro-lc works:


micro-lc introduction

## Installation

micro-lc is shipped as an ES module **CDN bundle** and can be imported in any HTML page. Moreover, a **dockerized
webserver** is available on Docker Hub.

[Read the docs](https://micro-lc.io/docs/getting-started) to learn how you can use micro-lc in your
next project!

## Handle the repo

### Build

This repository is made of 5 subpackages. The dependencies can be sketched as follows:

```
`interfaces`
|
`composer`
|
`orchestrator` `iconic`
| |
`layout`
```

to build the packages there's a script which can be invoked after install as

```shell
yarn initialize [OPTIONS]
```

where `OPTIONS` are

1. `-c` or `--cleanup`
2. one of the subpackages: `interfaces`, `iconic`, `composer`, `orchestrator`, and `layout` (default)

By using `cleanup` you require `initialize` to trash anything in the `dist`, `node_modules`, and `coverage` directories.
By choosing one subpackage, `initialize` will build up to that one.

To build the repository disregarding previous actions run:

```shell
yarn initialize --cleanup
```

### Shortcuts

Yarn allows to invoke scripts onto subpackages in a `workspaces` environment. Such commands might
become soon verbose since to build a subpackage the command would be like:

```shell
yarn workspace @micro-lc/orchestrator build
```

hence we enforced some shortcuts:

1. `workspace @micro-lc/interfaces` -> `i`
2. `workspace @micro-lc/iconic` -> `c`
3. `workspace @micro-lc/composer` -> `m`
4. `workspace @micro-lc/orchestrator` -> `o`
5. `workspace @micro-lc/layout` -> `l`

hence the command above would become:

```shell
yarn o build
```

### Test

To run tests ensure some CommonJS to ESM conversion on dependencies by running

```shell
yarn prepare-test
```

then simply run

```shell
yarn test
```

or

```shell
yarn coverage
```

### Components Playground

`layout` is a webcomponents repository and provides a storybook environment.
Remind to build dependencies as prompted [before](#build) and then run:

```shell
yarn l storybook
```

A local playground is also available. Run:

```shell
yarn playground
```

to start the playground, and:

```shell
yarn playground-stop
```
to stop it.

## Tag

To create a tag, a custom script is provided. Given the library/package you'd like to tag:

- `orchestrator`
- `composer`
- `layout`
- `iconic`
- `interfaces`

just run

```shell
yarn bump [major|minor|patch|]
```

which will:

1. update the changelog moving the unreleased entries to the tagged version
2. create the appropriate tags for npm libraries and docker containers

Notice that `orchestrator` release, on tag, both the npm library and a docker container,
hence carries 2 tags simultaneously.

## Contributing

We are thankful for any contributions from the community, read our [contributing guide](./CONTRIBUTING.md) to learn
about our development process, how to propose bugfixes and improvements, and how to build and test your changes to
micro-lc.

## Licence

micro-lc is [Apache 2.0 licensed](https://www.apache.org/licenses/LICENSE-2.0).