@mc-markets/ui 1.0.101 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -229
- package/RESOLVER_USAGE.md +257 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +33 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +547 -647
- package/dist/index.mjs.map +1 -1
- package/dist/resolver.d.ts +10 -28
- package/dist/resolver.d.ts.map +1 -1
- package/package.json +11 -1
- package/packages/resolver.d.ts +76 -0
- package/packages/resolver.js +135 -0
- package/packages/styles/README.md +1 -2
- package/packages/styles/index.scss +59 -136
- package/vite.config.example.js +37 -132
- package/FIX_ESM_ERROR.md +0 -129
- package/QUICK_START.md +0 -391
- package/USAGE_GUIDE.md +0 -353
- package/dist/index-simple.d.ts +0 -1
- package/dist/index-simple.d.ts.map +0 -1
- package/packages/styles/standalone.scss +0 -82
package/README.md
CHANGED
|
@@ -10,263 +10,80 @@ Vue 3 组件库,基于 Element Plus 的自定义组件
|
|
|
10
10
|
|
|
11
11
|
演示站点通过 GitHub Actions 自动构建和部署,展示了所有组件的使用方法和效果。
|
|
12
12
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
- 🎨 基于 Element Plus,保持一致的设计语言
|
|
16
|
-
- 🔧 支持全局注册和按需导入
|
|
17
|
-
- 📦 智能组件注册,自动转换 Element Plus 组件前缀 (el- → m-)
|
|
18
|
-
- 🚀 支持 unplugin-vue-components 自动导入
|
|
19
|
-
- 💪 TypeScript 支持
|
|
20
|
-
- 🎯 Tree-shaking 友好
|
|
21
|
-
|
|
22
|
-
## 🚀 安装
|
|
13
|
+
## 🚀 快速开始
|
|
23
14
|
|
|
15
|
+
### 安装
|
|
24
16
|
```bash
|
|
25
|
-
npm
|
|
26
|
-
# 或
|
|
27
|
-
yarn add @mc-markets/ui
|
|
28
|
-
# 或
|
|
29
|
-
pnpm add @mc-markets/ui
|
|
17
|
+
npm i @mc-markets/ui
|
|
30
18
|
```
|
|
31
19
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### 方式一:全局注册(推荐快速上手)
|
|
20
|
+
### 使用方式
|
|
35
21
|
|
|
36
|
-
|
|
22
|
+
#### 方式一:完整导入(推荐用于演示)
|
|
37
23
|
|
|
38
|
-
```
|
|
24
|
+
```js
|
|
25
|
+
// main.js
|
|
39
26
|
import { createApp } from 'vue'
|
|
40
27
|
import App from './App.vue'
|
|
41
28
|
import McMarketsUI from '@mc-markets/ui'
|
|
42
|
-
import '@mc-markets/ui/dist/style
|
|
29
|
+
import '@mc-markets/ui/dist/style'
|
|
43
30
|
|
|
44
31
|
const app = createApp(App)
|
|
45
32
|
app.use(McMarketsUI)
|
|
46
33
|
app.mount('#app')
|
|
47
34
|
```
|
|
48
35
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```vue
|
|
52
|
-
<template>
|
|
53
|
-
<m-button type="primary">按钮</m-button>
|
|
54
|
-
<m-input v-model="value" placeholder="请输入" />
|
|
55
|
-
</template>
|
|
56
|
-
|
|
57
|
-
<script setup>
|
|
58
|
-
import { ref } from 'vue'
|
|
59
|
-
import { MButton, MInput } from '@mc-markets/ui'
|
|
60
|
-
import '@mc-markets/ui/dist/style.css'
|
|
61
|
-
|
|
62
|
-
const value = ref('')
|
|
63
|
-
</script>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 方式三:自动按需导入(推荐)⭐
|
|
67
|
-
|
|
68
|
-
使用 `unplugin-vue-components` 和 `unplugin-auto-import` 实现零配置按需导入:
|
|
36
|
+
#### 方式二:自动导入(推荐用于生产)⭐
|
|
69
37
|
|
|
70
|
-
|
|
38
|
+
使用 `unplugin-vue-components` 实现按需自动导入:
|
|
71
39
|
|
|
72
40
|
```bash
|
|
73
|
-
npm
|
|
41
|
+
npm i -D unplugin-vue-components
|
|
74
42
|
```
|
|
75
43
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
在 `vite.config.js` 或 `vite.config.ts` 中:
|
|
79
|
-
|
|
80
|
-
```javascript
|
|
44
|
+
```js
|
|
45
|
+
// vite.config.js
|
|
81
46
|
import { defineConfig } from 'vite'
|
|
82
47
|
import vue from '@vitejs/plugin-vue'
|
|
83
|
-
import AutoImport from 'unplugin-auto-import/vite'
|
|
84
48
|
import Components from 'unplugin-vue-components/vite'
|
|
85
|
-
import {
|
|
49
|
+
import { McMarketsUiResolver } from '@mc-markets/ui/resolver'
|
|
86
50
|
|
|
87
51
|
export default defineConfig({
|
|
88
52
|
plugins: [
|
|
89
53
|
vue(),
|
|
90
|
-
// 自动导入组件
|
|
91
54
|
Components({
|
|
92
|
-
resolvers: [
|
|
93
|
-
McMarketsUIResolver({
|
|
94
|
-
// prefix: 'm', // 组件前缀,默认 'm'
|
|
95
|
-
// importStyle: 'css' // 样式导入方式:'css' | 'scss' | false,默认 'css'
|
|
96
|
-
})
|
|
97
|
-
]
|
|
98
|
-
}),
|
|
99
|
-
// 自动导入 API
|
|
100
|
-
AutoImport({
|
|
101
|
-
imports: [
|
|
102
|
-
'vue',
|
|
103
|
-
getMcMarketsUIImports() // 自动导入 Message, NotifiMessage 等 API
|
|
104
|
-
],
|
|
105
|
-
dts: 'src/auto-imports.d.ts'
|
|
55
|
+
resolvers: [McMarketsUiResolver()]
|
|
106
56
|
})
|
|
107
57
|
]
|
|
108
58
|
})
|
|
109
59
|
```
|
|
110
60
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
在 `main.js` 或 `main.ts` 中导入样式:
|
|
114
|
-
|
|
115
|
-
```javascript
|
|
116
|
-
import { createApp } from 'vue'
|
|
117
|
-
import App from './App.vue'
|
|
118
|
-
|
|
119
|
-
// 导入组件库样式(必需)
|
|
120
|
-
import '@mc-markets/ui/dist/style.css'
|
|
121
|
-
|
|
122
|
-
// 导入字体图标样式(如果使用图标组件)
|
|
123
|
-
import '@mc-markets/ui/styles/font'
|
|
124
|
-
import '@mc-markets/ui/styles/colorfont'
|
|
125
|
-
|
|
126
|
-
createApp(App).mount('#app')
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**自动导入样式(推荐):**
|
|
130
|
-
|
|
131
|
-
配置 resolver 的 `importStyle: 'css'` 后,会自动导入以下文件:
|
|
132
|
-
- `@mc-markets/ui/dist/style.css` - 主样式文件
|
|
133
|
-
- `@mc-markets/ui/styles/font` - 字体图标样式
|
|
134
|
-
- `@mc-markets/ui/styles/colorfont` - 彩色字体图标样式
|
|
135
|
-
|
|
136
|
-
```javascript
|
|
137
|
-
// vite.config.js
|
|
138
|
-
McMarketsUIResolver({
|
|
139
|
-
importStyle: 'css' // 自动导入所有必需的样式
|
|
140
|
-
})
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**其他样式导入方式:**
|
|
144
|
-
|
|
145
|
-
```javascript
|
|
146
|
-
// 方式1:导入编译后的 CSS(推荐,体积更小)
|
|
147
|
-
import '@mc-markets/ui/dist/style.css'
|
|
148
|
-
|
|
149
|
-
// 方式2:导入独立 SCSS 文件(不依赖 Element Plus,推荐)
|
|
150
|
-
import '@mc-markets/ui/styles/standalone'
|
|
151
|
-
|
|
152
|
-
// 方式3:导入 SCSS 源文件(包含自定义变量)
|
|
153
|
-
import '@mc-markets/ui/styles/index'
|
|
154
|
-
|
|
155
|
-
// 方式4:手动导入所有样式
|
|
156
|
-
import '@mc-markets/ui/dist/style.css'
|
|
157
|
-
import '@mc-markets/ui/styles/font'
|
|
158
|
-
import '@mc-markets/ui/styles/colorfont'
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
#### 4. 配置 Webpack(Vue CLI)
|
|
162
|
-
|
|
163
|
-
在 `vue.config.js` 中:
|
|
164
|
-
|
|
165
|
-
```javascript
|
|
166
|
-
const AutoImport = require('unplugin-auto-import/webpack')
|
|
167
|
-
const Components = require('unplugin-vue-components/webpack')
|
|
168
|
-
const { McMarketsUIResolver, getMcMarketsUIImports } = require('@mc-markets/ui')
|
|
169
|
-
|
|
170
|
-
module.exports = {
|
|
171
|
-
configureWebpack: {
|
|
172
|
-
plugins: [
|
|
173
|
-
Components({
|
|
174
|
-
resolvers: [McMarketsUIResolver()]
|
|
175
|
-
}),
|
|
176
|
-
AutoImport({
|
|
177
|
-
imports: [
|
|
178
|
-
'vue',
|
|
179
|
-
getMcMarketsUIImports()
|
|
180
|
-
],
|
|
181
|
-
dts: 'src/auto-imports.d.ts'
|
|
182
|
-
})
|
|
183
|
-
]
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
#### 5. 直接使用组件(无需手动导入)
|
|
189
|
-
|
|
190
|
-
配置完成后,可以直接在模板中使用组件,无需手动导入:
|
|
61
|
+
然后就可以直接在模板中使用组件,无需手动导入:
|
|
191
62
|
|
|
192
63
|
```vue
|
|
193
64
|
<template>
|
|
194
|
-
|
|
195
|
-
<m-
|
|
196
|
-
<m-input v-model="form.name" placeholder="请输入姓名" />
|
|
197
|
-
<m-select v-model="form.city">
|
|
198
|
-
<m-option label="北京" value="beijing" />
|
|
199
|
-
<m-option label="上海" value="shanghai" />
|
|
200
|
-
</m-select>
|
|
201
|
-
<m-date-picker v-model="form.date" />
|
|
65
|
+
<m-button type="primary">按钮</m-button>
|
|
66
|
+
<m-input v-model="value" />
|
|
202
67
|
</template>
|
|
203
|
-
|
|
204
|
-
<script setup>
|
|
205
|
-
import { ref } from 'vue'
|
|
206
|
-
|
|
207
|
-
// API 也会自动导入,可以直接使用
|
|
208
|
-
const form = ref({
|
|
209
|
-
name: '',
|
|
210
|
-
city: '',
|
|
211
|
-
date: ''
|
|
212
|
-
})
|
|
213
|
-
|
|
214
|
-
const showMessage = () => {
|
|
215
|
-
// Message 已自动导入
|
|
216
|
-
Message.success('操作成功!')
|
|
217
|
-
}
|
|
218
|
-
</script>
|
|
219
68
|
```
|
|
220
69
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
本组件库实现了智能组件注册机制:
|
|
70
|
+
📘 详细配置请查看 [Resolver 使用指南](./RESOLVER_USAGE.md)
|
|
224
71
|
|
|
225
|
-
|
|
226
|
-
2. **Element Plus 回退**:未自定义的组件会自动从 Element Plus 导入
|
|
227
|
-
3. **前缀转换**:自动将 `el-*` 转换为 `m-*`(如 `<el-button>` → `<m-button>`)
|
|
228
|
-
4. **无缝集成**:可以混合使用自定义组件和 Element Plus 组件
|
|
72
|
+
#### 方式三:手动按需导入
|
|
229
73
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
- `MInput` - 输入框
|
|
236
|
-
- `MSelect` / `MOption` / `MOptionGroup` - 选择器
|
|
237
|
-
- `MForm` / `MFormItem` - 表单
|
|
238
|
-
- `MTable` / `MTableColumn` - 表格
|
|
239
|
-
- `MDatePicker` - 日期选择器
|
|
240
|
-
- `MPagination` - 分页
|
|
241
|
-
- `MRadio` / `MRadioGroup` / `MRadioButton` - 单选框
|
|
242
|
-
- `MSwitch` - 开关
|
|
243
|
-
- `MTag` - 标签
|
|
244
|
-
- `MAlert` - 警告
|
|
245
|
-
- `MDialog` - 对话框
|
|
246
|
-
- `MTooltip` - 文字提示
|
|
247
|
-
- `MEmpty` - 空状态
|
|
248
|
-
- `MBanner` - 横幅
|
|
249
|
-
- `MTabs` / `MTabPane` - 标签页
|
|
250
|
-
- `MTabCard` / `MTabCardItem` - 卡片标签页
|
|
251
|
-
- `MBreadcrumb` - 面包屑导航
|
|
252
|
-
|
|
253
|
-
#### Element Plus 组件(自动转换前缀)
|
|
254
|
-
所有 Element Plus 组件都可以通过 `m-` 前缀使用,例如:
|
|
255
|
-
- `MCarousel` / `MCarouselItem` - 走马灯
|
|
256
|
-
- `MCascader` - 级联选择器
|
|
257
|
-
- `MColorPicker` - 颜色选择器
|
|
258
|
-
- `MTree` / `MTreeSelect` - 树形控件
|
|
259
|
-
- `MUpload` - 上传
|
|
260
|
-
- `MProgress` - 进度条
|
|
261
|
-
- 等等...
|
|
262
|
-
|
|
263
|
-
#### API 方法
|
|
264
|
-
- `Message` - 消息提示
|
|
265
|
-
- `NotifiMessage` - 通知消息
|
|
266
|
-
- `MMessageBox` - 消息弹框
|
|
74
|
+
```vue
|
|
75
|
+
<script setup>
|
|
76
|
+
import { MButton, MInput } from '@mc-markets/ui'
|
|
77
|
+
import '@mc-markets/ui/dist/style'
|
|
78
|
+
</script>
|
|
267
79
|
|
|
268
|
-
|
|
80
|
+
<template>
|
|
81
|
+
<m-button type="primary">按钮</m-button>
|
|
82
|
+
<m-input v-model="value" />
|
|
83
|
+
</template>
|
|
84
|
+
```
|
|
269
85
|
|
|
86
|
+
### 文档开发模式
|
|
270
87
|
```bash
|
|
271
88
|
# 安装依赖
|
|
272
89
|
npm install
|
|
@@ -274,20 +91,6 @@ npm install
|
|
|
274
91
|
# 启动开发服务器
|
|
275
92
|
npm run dev
|
|
276
93
|
|
|
277
|
-
#
|
|
278
|
-
npm run build
|
|
279
|
-
|
|
280
|
-
# 构建演示站点
|
|
281
|
-
npm run build:demo
|
|
282
|
-
|
|
283
|
-
# 发布到 npm
|
|
94
|
+
# 构建发布
|
|
284
95
|
npm run publish:lib
|
|
285
96
|
```
|
|
286
|
-
|
|
287
|
-
## 📄 License
|
|
288
|
-
|
|
289
|
-
MIT
|
|
290
|
-
|
|
291
|
-
## 🤝 贡献
|
|
292
|
-
|
|
293
|
-
欢迎提交 Issue 和 Pull Request!
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# @mc-markets/ui Resolver 使用指南
|
|
2
|
+
|
|
3
|
+
## 什么是 Resolver?
|
|
4
|
+
|
|
5
|
+
Resolver 是 `unplugin-vue-components` 的一个功能,它可以自动识别和导入组件库的组件,无需手动导入。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
首先,确保你已经安装了必要的依赖:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @mc-markets/ui
|
|
13
|
+
npm install -D unplugin-vue-components
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 使用方法
|
|
17
|
+
|
|
18
|
+
### Vite 配置
|
|
19
|
+
|
|
20
|
+
在你的 `vite.config.js` 或 `vite.config.ts` 中:
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
import { defineConfig } from 'vite'
|
|
24
|
+
import vue from '@vitejs/plugin-vue'
|
|
25
|
+
import Components from 'unplugin-vue-components/vite'
|
|
26
|
+
import { McMarketsUiResolver } from '@mc-markets/ui/resolver'
|
|
27
|
+
|
|
28
|
+
export default defineConfig({
|
|
29
|
+
plugins: [
|
|
30
|
+
vue(),
|
|
31
|
+
Components({
|
|
32
|
+
resolvers: [
|
|
33
|
+
McMarketsUiResolver({
|
|
34
|
+
importStyle: true, // 自动导入样式
|
|
35
|
+
styleType: 'css', // 样式类型: 'css' | 'scss'
|
|
36
|
+
fallbackToElementPlus: false // 是否回退到 Element Plus
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
})
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Webpack 配置
|
|
45
|
+
|
|
46
|
+
在你的 `webpack.config.js` 中:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
const Components = require('unplugin-vue-components/webpack')
|
|
50
|
+
const { McMarketsUiResolver } = require('@mc-markets/ui/resolver')
|
|
51
|
+
|
|
52
|
+
module.exports = {
|
|
53
|
+
plugins: [
|
|
54
|
+
Components({
|
|
55
|
+
resolvers: [McMarketsUiResolver()]
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Rollup 配置
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
import Components from 'unplugin-vue-components/rollup'
|
|
65
|
+
import { McMarketsUiResolver } from '@mc-markets/ui/resolver'
|
|
66
|
+
|
|
67
|
+
export default {
|
|
68
|
+
plugins: [
|
|
69
|
+
Components({
|
|
70
|
+
resolvers: [McMarketsUiResolver()]
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 配置选项
|
|
77
|
+
|
|
78
|
+
### importStyle
|
|
79
|
+
|
|
80
|
+
- **类型**: `boolean`
|
|
81
|
+
- **默认值**: `true`
|
|
82
|
+
- **说明**: 是否自动导入样式文件
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
McMarketsUiResolver({
|
|
86
|
+
importStyle: true // 会自动导入组件样式
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### styleType
|
|
91
|
+
|
|
92
|
+
- **类型**: `'css' | 'scss'`
|
|
93
|
+
- **默认值**: `'css'`
|
|
94
|
+
- **说明**: 样式文件类型
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
// 使用 CSS 样式(打包后的)
|
|
98
|
+
McMarketsUiResolver({
|
|
99
|
+
styleType: 'css' // 导入 @mc-markets/ui/dist/style
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
// 使用 SCSS 样式(源文件)
|
|
103
|
+
McMarketsUiResolver({
|
|
104
|
+
styleType: 'scss' // 导入 @mc-markets/ui/styles/index
|
|
105
|
+
})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
如果使用 `scss`,需要确保项目中配置了 SCSS 处理器。
|
|
109
|
+
|
|
110
|
+
### fallbackToElementPlus
|
|
111
|
+
|
|
112
|
+
- **类型**: `boolean`
|
|
113
|
+
- **默认值**: `false`
|
|
114
|
+
- **说明**: 对于未自定义的组件,是否回退到 Element Plus
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
McMarketsUiResolver({
|
|
118
|
+
fallbackToElementPlus: true
|
|
119
|
+
})
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
当设置为 `true` 时,如果使用了 `@mc-markets/ui` 未自定义的组件(如 `MCard`),会尝试从库中导入转换后的 Element Plus 组件。
|
|
123
|
+
|
|
124
|
+
## 使用示例
|
|
125
|
+
|
|
126
|
+
配置好 resolver 后,你可以直接在模板中使用组件,无需手动导入:
|
|
127
|
+
|
|
128
|
+
```vue
|
|
129
|
+
<template>
|
|
130
|
+
<div>
|
|
131
|
+
<!-- 自动导入 MButton -->
|
|
132
|
+
<m-button type="primary">主要按钮</m-button>
|
|
133
|
+
|
|
134
|
+
<!-- 自动导入 MInput -->
|
|
135
|
+
<m-input v-model="value" placeholder="请输入" />
|
|
136
|
+
|
|
137
|
+
<!-- 自动导入 MDialog -->
|
|
138
|
+
<m-dialog v-model="visible" title="对话框">
|
|
139
|
+
<p>对话框内容</p>
|
|
140
|
+
</m-dialog>
|
|
141
|
+
</div>
|
|
142
|
+
</template>
|
|
143
|
+
|
|
144
|
+
<script setup>
|
|
145
|
+
import { ref } from 'vue'
|
|
146
|
+
|
|
147
|
+
const value = ref('')
|
|
148
|
+
const visible = ref(false)
|
|
149
|
+
</script>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 与其他 Resolver 一起使用
|
|
153
|
+
|
|
154
|
+
你可以同时使用多个 resolver:
|
|
155
|
+
|
|
156
|
+
```js
|
|
157
|
+
import { defineConfig } from 'vite'
|
|
158
|
+
import Components from 'unplugin-vue-components/vite'
|
|
159
|
+
import {
|
|
160
|
+
McMarketsUiResolver
|
|
161
|
+
} from '@mc-markets/ui/resolver'
|
|
162
|
+
import {
|
|
163
|
+
ElementPlusResolver,
|
|
164
|
+
VantResolver
|
|
165
|
+
} from 'unplugin-vue-components/resolvers'
|
|
166
|
+
|
|
167
|
+
export default defineConfig({
|
|
168
|
+
plugins: [
|
|
169
|
+
Components({
|
|
170
|
+
resolvers: [
|
|
171
|
+
McMarketsUiResolver(),
|
|
172
|
+
ElementPlusResolver(), // Element Plus 组件
|
|
173
|
+
VantResolver() // Vant 组件
|
|
174
|
+
]
|
|
175
|
+
})
|
|
176
|
+
]
|
|
177
|
+
})
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 支持的组件
|
|
181
|
+
|
|
182
|
+
目前支持自动导入的自定义组件包括:
|
|
183
|
+
|
|
184
|
+
- `MIcon` - 图标
|
|
185
|
+
- `MButton` - 按钮
|
|
186
|
+
- `MInput` - 输入框
|
|
187
|
+
- `MForm` - 表单
|
|
188
|
+
- `MFormItem` - 表单项
|
|
189
|
+
- `MTooltip` - 文字提示
|
|
190
|
+
- `MSelect` - 选择器
|
|
191
|
+
- `MOption` - 选项
|
|
192
|
+
- `MOptionGroup` - 选项组
|
|
193
|
+
- `MPagination` - 分页
|
|
194
|
+
- `MRadio` - 单选框
|
|
195
|
+
- `MRadioGroup` - 单选框组
|
|
196
|
+
- `MRadioButton` - 单选按钮
|
|
197
|
+
- `MSwitch` - 开关
|
|
198
|
+
- `MTag` - 标签
|
|
199
|
+
- `MAlert` - 警告
|
|
200
|
+
- `MDialog` - 对话框
|
|
201
|
+
- `MNotification` - 通知
|
|
202
|
+
- `MMessage` - 消息提示
|
|
203
|
+
- `MNotifiMessage` - 通知消息
|
|
204
|
+
- `MDatePicker` - 日期选择器
|
|
205
|
+
- `MEmpty` - 空状态
|
|
206
|
+
- `MTable` - 表格
|
|
207
|
+
- `MTableColumn` - 表格列
|
|
208
|
+
- `MBanner` - 横幅
|
|
209
|
+
- `MTabs` - 标签页
|
|
210
|
+
- `MTabPane` - 标签面板
|
|
211
|
+
- `MTabCard` - 标签卡片
|
|
212
|
+
- `MTabCardItem` - 标签卡片项
|
|
213
|
+
- `MBreadcrumb` - 面包屑
|
|
214
|
+
|
|
215
|
+
## 注意事项
|
|
216
|
+
|
|
217
|
+
1. **组件前缀**: 所有组件必须使用 `M` 前缀(如 `MButton`、`MInput`)才能被 resolver 识别。
|
|
218
|
+
|
|
219
|
+
2. **样式导入**:
|
|
220
|
+
- 如果使用 `styleType: 'css'`,会导入打包后的 CSS 文件
|
|
221
|
+
- 如果使用 `styleType: 'scss'`,会导入源 SCSS 文件,需要项目支持 SCSS
|
|
222
|
+
|
|
223
|
+
3. **按需加载**: Resolver 会自动实现按需加载,只导入你使用的组件。
|
|
224
|
+
|
|
225
|
+
4. **类型支持**: Resolver 提供了完整的 TypeScript 类型定义。
|
|
226
|
+
|
|
227
|
+
## 常见问题
|
|
228
|
+
|
|
229
|
+
### Q: 组件没有被自动导入?
|
|
230
|
+
|
|
231
|
+
A: 请确保:
|
|
232
|
+
1. 组件名称使用了 `M` 前缀(如 `<m-button>`)
|
|
233
|
+
2. Vite/Webpack 配置正确
|
|
234
|
+
3. 重启开发服务器
|
|
235
|
+
|
|
236
|
+
### Q: 样式没有生效?
|
|
237
|
+
|
|
238
|
+
A: 请检查:
|
|
239
|
+
1. `importStyle` 选项是否设置为 `true`
|
|
240
|
+
2. 如果使用 `styleType: 'scss'`,确保项目配置了 SCSS 处理器
|
|
241
|
+
|
|
242
|
+
### Q: 可以和 Element Plus 一起使用吗?
|
|
243
|
+
|
|
244
|
+
A: 可以!你可以同时使用 `McMarketsUiResolver` 和 `ElementPlusResolver`:
|
|
245
|
+
|
|
246
|
+
```js
|
|
247
|
+
resolvers: [
|
|
248
|
+
McMarketsUiResolver(),
|
|
249
|
+
ElementPlusResolver()
|
|
250
|
+
]
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## 更多资源
|
|
254
|
+
|
|
255
|
+
- [unplugin-vue-components 文档](https://github.com/antfu/unplugin-vue-components)
|
|
256
|
+
- [@mc-markets/ui 文档](https://daboluoxigua.github.io/mc-markets-ui/)
|
|
257
|
+
|