# 新增主框架

# 复制现有vue主框架(添加一个main-oa主框架为例)

1、在根目录下复制main主框架重命名为main-oa

2、在/package.json中的scripts中添加以下命令:

"scripts": {
  "serve:main-oa": "pnpm run -C main-oa serve",
  "build:main-oa": "pnpm run -C main-oa build",
},
1
2
3
4

3、在/package.jsonworkspaces参数下追加框架目录名main-oa

4、在/pnpm-workspace.yamlpackages下追加框架目录名main-oa

5、在/scripts/config/index.ts中添加如下配置:

// 在主框架配置中追加
export const mainProjectConfig: Record<string, MainProjectConfigItem> = {
  'main-oa': {
    buildChildParentName: process.env.MICRO_BUILD_CHILD_NAME,
    rootDir: 'main-oa',
    outputDir: 'dist',
    serveRun: 'serve:main-oa',
    buildRun: 'build:main-oa',
    subproject: [ // 此框架需要的子项目
      'system',
      'article',
    ]
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

6、修改新主框架入口文件 /main-oa/src/main.ts:

- const Apps = childProjectAll('main',{parentRouter: router, parentStore: store});
// 上面替换为下面
+ const Apps = childProjectAll('main-oa',{parentRouter: router, parentStore: store});
1
2
3

7、在新主框架main-oa/src/layouts/QiankunLayout/routes.ts中增删路由,如:

const QiankunLayoutRoutes: Array<RoutesDataItem> = [
  {
    icon: 'menu-links',
    title: 'qiankun-layout.menu.links',
    path: '/links',
    redirect: '/links/list',
    roles: ['links'],
    component: BlankLayout,
    children: [
      {
        title: 'qiankun-layout.menu.links.list',
        path: 'list',
        roles: ['links-list'],
        component: QianKunStartScreen
      },
    ]
  },
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

8、运行测试