umi3 + qiankun 搭建微前端

本文介紹 qiankun 的主應(yīng)用和微應(yīng)用都使用 umi3 搭建。

1. 主應(yīng)用

創(chuàng)建主應(yīng)用,安裝依賴包

$ mkdir umi-main
$ cd umi-main
$ yarn create @umijs/umi-app
$ yarn
$ yarn add @umijs/plugin-qiankun -D

修改啟動端口號:根目錄下創(chuàng)建 .env 文件,內(nèi)容如下:

PORT=8300

修改 .umirc 配置文件

import { defineConfig } from 'umi';

export default defineConfig({
  qiankun: {
    master: {
      apps: [
        {
          name: 'micro',                                // 微應(yīng)用名稱
          entry: '//localhost:8301',        // 微應(yīng)用入口文件
        }
      ]
    }
  },
  routes: [
    { exact: true, path: '/', component: '@/pages/index' },
    { 
      path: '/micro', 
      microApp: 'micro',        // 當(dāng)訪問路由為 /micro,主應(yīng)用實(shí)際訪問名稱為 micro 的微應(yīng)用
    },
  ],
});

2. 微應(yīng)用

創(chuàng)建微應(yīng)用

$ mkdir umi-micro
$ cd umi-micro
$ yarn create @umijs/umi-app
$ yarn
$ yarn add @umijs/plugin-qiankun -D

修改微應(yīng)用啟動端口,創(chuàng)建 .env 文件,內(nèi)容如下:

PORT=8301

修改 .umirc 配置文件

import { defineConfig } from 'umi';

export default defineConfig({
  // 加這個(gè)屬性,就不用在入口文件 src/app.ts 中寫 qiankun 生命周期函數(shù)了
  qiankun: {
    slave: {},
  },
  // 加這個(gè)屬性,靜態(tài)資源訪問前綴
  publicPath: '/micro/',
  routes: [
    { path: '/', component: '@/pages/index' },
  ],
});

修改 package.json 文件,去除 private 屬性,添加 name 屬性,否則啟動會報(bào)錯(cuò) You should have name in package.json

-- "private": true,
++ "name": "umi-micro",

修改頁面內(nèi)容,以區(qū)別于主應(yīng)用 src/pages/index.tsx

import styles from './index.less';

export default function IndexPage() {
  return (
    <div>
      <h1 className={styles.title}>Umi-Micro Page</h1>
    </div>
  );
}

3. 測試

先啟動微應(yīng)用,訪問 http://localhost:8301/

image.png

啟動主應(yīng)用,訪問 http://localhost:8300/

image.png

還是主應(yīng)用的端口,訪問 /micro 路由,可以看到頁面中顯示的是微應(yīng)用的頁面,環(huán)境搭建成功

image.png

至此,開發(fā)已經(jīng)沒問題了,但是后面部署還會遇到問題,這個(gè)下篇文章再介紹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容