vue-bag-admin
Version:
Unified entry package for the Vue Bag Admin runtime ecosystem.
156 lines (118 loc) • 3.43 kB
Markdown
# vue-bag-admin
`vue-bag-admin` 是面向业务项目的统一运行时入口包。你可以只安装这一个主包,然后从同一个入口拿到宿主层、请求层、UI 组件层和插件协议层的常用能力。
<p align="center">
<a href="https://hangjob.github.io/vue-bag-admin/docs/">使用文档</a>
·
<a href="https://hangjob.github.io/vue-bag-admin/">在线预览</a>
·
<a href="https://github.com/hangjob/vue-bag-admin">GitHub</a>
</p>
## 安装
```bash
pnpm add vue-bag-admin vue vue-router pinia vue-i18n naive-ui
```
如果你需要官方插件,再额外安装对应插件包:
```bash
pnpm add @bag/plugin-shop @bag/plugin-sys-setting
```
## 用法
先引入样式,再在入口里完成宿主初始化:
```ts
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import 'vue-bag-admin/style.css'
import './style.css'
import { bootstrapPlugins, createHostI18n, createHostRouter, setupHttp } from 'vue-bag-admin'
import { exampleRoutes } from './routes'
async function setupApp() {
const app = createApp(App)
const pinia = createPinia()
const i18n = createHostI18n()
const router = createHostRouter({
routes: exampleRoutes,
auth: false
})
app.use(pinia)
app.use(i18n)
app.use(router)
// 如果项目已经接后端,可以在入口里统一注入请求配置。
setupHttp({
baseURL: import.meta.env.VITE_API_URL
})
await bootstrapPlugins({
app,
router,
i18n,
plugins: []
})
await router.isReady()
app.mount('#app')
}
setupApp()
```
最小版 `App.vue` 可以只挂宿主容器:
```vue
<template>
<HostApp />
</template>
<script setup lang="ts">
import { HostApp } from 'vue-bag-admin'
</script>
```
如果只是轻量接入宿主壳层,可以先不提供登录页:
```ts
import type { AdminRouteRecordRaw } from 'vue-bag-admin'
export const exampleRoutes: AdminRouteRecordRaw[] = [
{
path: '/',
redirect: '/HomeView'
},
{
path: '/HomeView',
name: 'HomeView',
component: () => import('./views/HomeView.vue'),
meta: {
layout: 'default'
}
},
{
path: '/404',
name: 'NotFound',
component: () => import('./views/NotFound.vue'),
meta: {
public: true
}
},
{
path: '/:pathMatch(.*)*',
redirect: '/404'
}
]
```
如果项目要启用默认后台登录守卫,把 `auth` 改成 `true`,并提供带 `meta.public: true` 的 `/login` 路由。
接入时通常按这个顺序来:
1. 引入 `vue-bag-admin/style.css`
2. 用 `createHostI18n()` 和 `createHostRouter()` 初始化宿主
3. 如果要接后端,在入口里调用 `setupHttp()`
4. 用 `bootstrapPlugins()` 注册插件和插件路由
5. 在 `App.vue` 中挂载 `HostApp`
除了宿主能力,你也可以直接从主包拿请求层和 UI 组件:
```ts
import { http, PmProTable, PmProForm, PmSchemaForm } from 'vue-bag-admin'
```
## 当前聚合范围
- `@bag/core`
- `@bag/request`
- `@bag/ui`
- `@bag/host-vue`
## 配套官方插件
- `@bag/plugin-shop`
- `@bag/plugin-sys-setting`
## 脚手架
如果你想直接生成一个宿主项目,请使用:
```bash
npx create-vue-bag-admin my-admin
```
## 文档与社区
遇到接入、插件开发或中后台实践相关的问题,可以先查看[使用文档](https://hangjob.github.io/vue-bag-admin/docs/);也欢迎通过下面的入口继续交流。