# qiankun **Repository Path**: WEB-yck/qiankun ## Basic Information - **Project Name**: qiankun - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-23 - **Last Updated**: 2021-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # qiankunοΌˆδΉΎε€οΌ‰ [![npm version](https://img.shields.io/npm/v/qiankun.svg?style=flat-square)](https://www.npmjs.com/package/qiankun) [![coverage](https://img.shields.io/codecov/c/github/umijs/qiankun.svg?style=flat-square)](https://codecov.io/gh/umijs/qiankun) [![npm downloads](https://img.shields.io/npm/dt/qiankun.svg?style=flat-square)](https://www.npmjs.com/package/qiankun) [![Build Status](https://img.shields.io/travis/umijs/qiankun.svg?style=flat-square)](https://travis-ci.com/umijs/qiankun) > In Chinese traditional culture `qian` means heaven and `kun` stands for earth, so `qiankun` is the universe. An implementation of [Micro Frontends](https://micro-frontends.org/), based on [single-spa](https://github.com/CanopyTax/single-spa), but made it production-ready. ## πŸ€” Motivation As we know what micro-frontends aims for: > Techniques, strategies and recipes for building a **modern web app** with **multiple teams** using **different JavaScript frameworks**. β€” [Micro Frontends](https://micro-frontends.org/) Modularity is very important for large application. By breaking down a large system into individual sub-applications, we can achieve good divide-and-conquer between products and when necessary combination, especially for enterprise applications that usually involve multi-team collaboration. But if you're trying to implement such a micro frontends architecture system by yourself, you're likely to run into some tricky problems: - In what form do sub applications publish static resources? - How does the main application integrate individual sub-applications? - How do you ensure that sub-applications are independent of each other (development independent, deployment independent) and runtime isolated? - Performance issues? What about public dependencies? - And so on... After solving these common problems of micro frontends, we extracted the kernel of our solution after a lot of internal online application testing and polishing, and then named it `qiankun`. **Probably the most complete micro-frontends solution you ever met🧐.** ## πŸ“¦ Installation ```shell $ yarn add qiankun # or npm i qiankun -S ``` ## πŸ“– Documentation https://qiankun.umijs.org/ ## πŸ’Ώ Getting started This repo contains an `examples` folder with a sample Shell app and multiple mounted Micro FE apps. To run this app, first clone `qiankun`: ```shell $ git clone https://github.com/umijs/qiankun.git $ cd qiankun ``` Now run the yarn scripts to install and run the examples project: ```shell $ yarn install $ yarn examples:install $ yarn examples:start ``` Visit `http://localhost:7099`. ![](./examples/example.gif) ## :sparkles: Features - πŸ“¦ **Based On [single-spa](https://github.com/CanopyTax/single-spa)** - πŸ“± **Technology Agnostic** - πŸ’ͺ **HTML Entry Access Mode** - πŸ›‘ **Style Isolation** - 🧳 **JS Sandbox** - ⚑ **Prefetch Assets** - πŸ”Œ **[Umi Plugin](https://github.com/umijs/plugins/tree/master/packages/plugin-qiankun) Integration** ## 🎯 Roadmap - [x] Parcel apps integration (multiple sub apps displayed at the same time, but only one uses router at most) - [x] Communication development kits between master and sub apps - [ ] Custom side effects hijacker - [ ] Nested Microfrontends ## ❓ FAQ https://qiankun.umijs.org/faq/ ## πŸ‘¬ Community https://qiankun.umijs.org/#community ## 🎁 Acknowledgements - [single-spa](https://github.com/CanopyTax/single-spa) What an awesome meta-framework for micro-frontends! - [import-html-entry](https://github.com/kuitos/import-html-entry/) An assets loader which supports html entry.