---
sidebar_position: 1
title: 开始开发插件
---

## 认识 MiniStar

`MiniStar` 是一套完整的微内核架构开发工具链，`Tailchat`的插件架构就是基于 `MiniStar` 进行开发。

关于更多的 `MiniStar` 相关问题可以查看 `MiniStar` 的官方文档: [https://ministar.moonrailgun.com/](https://ministar.moonrailgun.com/)

## 创建一个基本项目

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs groupId="start">
  <TabItem value="cli" label="使用命令行工具快速创建" default>

移动到项目目录下(可以是自定义项目):

```bash
tailchat create
```

根据实际情况选择模板

![](/img/tutorial/plugin/1.png)

  </TabItem>
  <TabItem value="ministar" label="使用原生ministar创建插件项目" default>


创建一个基本的 npm 项目, 并全局安装 `MiniStar`

```bash
npm install --global mini-star
```

在项目中执行: `ministar createPlugin` 来创建一个基本的插件

在项目中执行: `ministar buildPlugin` 来编译插件

> 值得一提的是， 虽然 `Tailchat` 并没有强制规定插件命名规范，但是还是推荐使用 `反域名` 的命名方式(类似于java中的包命名), 然后对插件中的部件，使用 `/` 进行分割
>
> 如:
> 插件名: `com.msgbyte.webview`
>
> 注册内容: `com.msgbyte.webview/grouppanel`


  </TabItem>
</Tabs>



## 安装插件

### 手动安装插件

在不经过任何预设的情况下，一个通用的办法是自己构造一个 `manifest` 配置, 然后在 `tailchat` 提供手动安装插件 Tab 中将配置文件粘贴进去安装。

插件的url路径可以通过 `oss对象存储服务` / `static-server` 等办法代理

一个作为示例的`manifest.json`配置如下:

```json
{
  "label": "网页面板插件",
  "name": "com.msgbyte.webview",
  "url": "/plugins/com.msgbyte.webview/index.js",
  "version": "0.0.0",
  "author": "msgbyte",
  "description": "为群组提供创建网页面板的功能",
  "requireRestart": false
}
```

## 其他有用的资源

- 插件化架构内核依赖库 [MiniStar](https://ministar.moonrailgun.com/)
- 来自基础项目提供的API: [API 文档](./api/common)
- 导出接口源码
  - [@capital/common](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/common/index.ts)
  - [@capital/component](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/component/index.tsx)
