# visionmcui
**Repository Path**: coder-yl/visionmcui
## Basic Information
- **Project Name**: visionmcui
- **Description**: visionmcui
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-01-19
- **Last Updated**: 2024-01-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
visionmc-ui为visionmc-ui 内部组件库,适用于vue3项目,包括自定义组件,修改element-plus组件样式
# 开发指南
## 相关技术栈
| 组件 | 版本 |
| :-------------- | :------- |
| vue | 3.4.14 |
| vite | 5.0.11 |
| typescript | 5.2.2 |
| sass | 1.70.0 |
| vite-plugin-dts | 3.7.1 |
| element-plus | 2.5.1 |
| gulp | 4.0.2 |
| gulp-sass | 5.1.0 |
| prettier | 3.2.4 |
| eslint | 8.56.0 |
| minimist | 1.2.8 |
| pnpm | 8.6.12 |
| node | v16.14.2 |
## 命令行解释
| 命令 | 说明 |
| :--------------- | :----------------------------------- |
| start:visionmcui | 开始运行编译编译并开启文件监听热更新 |
| build:visionmcui | 编译组件库,不会开启文件监听 |
| lint:script | 运行代码检查并修复 |
| build:pub | 编译组件库并进行发布 |
| pub:only | 只执行发布命令 |
## 文件夹解释
| 名称 | 说明 |
| :------------------------------ | :------------------------------------------------------------------- |
| play | 预览项目,通过vite + vue3 搭建的组件效果预览项目 |
| packages | pnpm 项目子包文件夹 |
| packages/components | 组件库项目源码 |
| packages/visionmcui | 组件库项目需要发布的文件,内包含package.json和README以及编译后的文件 |
| packages/utils | 工具包,暂时未启用 |
| packages/components/resetstyles | 重写element-plus样式文件夹,所有相关的文件都在此文件下 |
| packages/components/script | 组件库编译相关代码 |
| packages/components/src | 组件库自定义组件源码位置 |
## 开发流程
1. 拉取项目:`git clone https://gitee.com/coder-yl/visionmcui.git`
2. 拉取依赖: 进入项目,执行:`pnpm install`
3. 启动项目:终端执行:`pnpm start:visionmcui`
4. 启动预览项目:进入play目录执行:`pnpm dev`
### 开发一个自定义组件
1. `packages/components/src` 目录下新建一个组件目录,内部包含组件文件,style目录以及一个index.ts文件,index.ts文件内容大致如下,其主要目的是给此组件加上install,实现组件注册
```ts
import _Button from './button.vue';
import withInstall from '../../utils/withInstall';
export const Button = withInstall(_Button);
export default Button;
```
2. `packages/components/src/components.d.ts`文件下增加对应组件的类型声明
3. `packages/components/src/index.ts`文件导出对应组件
### 修改element-plus样式
1. `packages/components/resetstyles/`文件夹下增加对应样式文件
2. `packages/components/resetstyles/index.scss`导入对应文件
# 使用指南
## 安装依赖
```shell
pnpm install visionmcui
```
## 使用自定义内部组件
### 全量引入
```ts
import { createApp } from 'vue';
import App from './app.vue';
const app = createApp(App);
app.use(visionmcui);
app.mount('#app');
```
### 按需引入
直接在内部引入相关组件即可
```vue
```
### 使用element-plus组件样式
修改element-plus组件主题根据element-plus官方使用了sass变量方式,所以项目需要引入element-plus和sass
1. 安装依赖
```shell
pnpm install element-plus visionmcui
pnpm install sass -D
```
2. 使用
main.ts
```ts
import { createApp } from 'vue';
import App from './app.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
// 导入重置element-plus样式文件
import 'visionmcui/es/resetstyles/index.css';
// 导入重置颜色文件,记住是scss类型
import 'visionmcui/es/resetstyles/color.scss';
const app = createApp(App);
app.use(visionmcui);
app.use(ElementPlus);
app.mount('#app');
```
app.vue
```vue
```