1 Star 0 Fork 0

花雨夜-艺术 / coexisting-vue-microfrontends

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Try the newer example repo

The newer example demonstrating Vue Microfrontends can be found at https://github.com/vue-microfrontends and https://vue.microfrontends.app. That example better reflects the microfrontends architecture and is encouraged to use.

Coexisting Vue Microfrontends

Build Status

Demo: http://coexisting-vue-microfrontends.surge.sh

This is a starter-kit / example repository for people who want to have multiple vue microfrontends coexist within a single page. Each of the vue applications was created by Vue CLI.

It uses single-spa to pull this off, which means that you can even add React, Angular, or other frameworks as additional microfrontends.

An important note

This github repository has four projects all in one repo. But when you do this yourself, you'll want to have one git repo per vue application. The root-html-file project should also be in its own repo. This is what lets different teams and developers be in charge of different microfrontends.

Local development -- one app at a time

Tutorial video

With single-spa, it is preferred to run npm run serve in only one single-spa application at a time, while using a deployed version of the other applications. This makes for an awesome developer experience where you can boot up just one microfrontend at a time, not even having to clone, npm install, or boot up all of the other ones.

To try this out, clone the repo and run the following commands:

cd app1
npm i
npm run serve

Now go to http://coexisting-vue-microfrontends.surge.sh in a browser. In a browser console, run localStorage.setItem('overrides-ui', true). Refresh the page. Now click on the yellowish rectangle at the bottom right. Then click on app1. Change the module url to http://localhost:8081/js/app.js. Then apply the override and reload the page. This will have change app1 to load from your localhost instead of from surge.sh. As you modify the code locally, it will reload the page on coexisting-vue-microfrontends.surge.sh. See https://github.com/joeldenning/import-map-overrides for more info on this.

Local development -- all at once

It is preferred to only run one app at a time. But if you need to run them all locally, you can do so with the following instructions

# First terminal tab
cd root-html-file
npm install
npm run serve
# Second terminal tab
cd app1
npm install
npm run serve
# Third terminal tab
cd app2
npm install
npm run serve
# Fourth terminal tab
cd navbar
npm install
npm run serve

Now go to http://localhost:5000 in a browser. Note that you can change any of the ports for the projects by modifying the Import Map inside of root-html-file/index.html.

If you get serious about deploying your code, you'll want to make it no longer necessary to boot up all of the apps in order to do anything. When you get to that point, check out import-map-overrides, which lets you go to a deployed environment and override the Import Map for just one microfrontend at a time. The import-map-overrides library is already loaded in the index.html of root-html-file, so you can start using it immediately. You can make your deployed environment overridable, just like you can do overrides on http://coexisting-vue-microfrontends.surge.sh

More documentation

Go to https://single-spa.js.org/docs/ecosystem-vue.html to learn how all of this works.

MIT License Copyright (c) 2019 Joel Denning Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xxmi-art/coexisting-vue-microfrontends.git
git@gitee.com:xxmi-art/coexisting-vue-microfrontends.git
xxmi-art
coexisting-vue-microfrontends
coexisting-vue-microfrontends
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891