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).