@mc-markets/ui 1.0.94 → 1.0.95

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.
@@ -10,8 +10,13 @@
10
10
  * @param {string} options.prefix - 组件前缀,默认 'm'
11
11
  * @param {boolean|'css'|'scss'} options.importStyle - 样式导入方式
12
12
  * - false: 不导入样式(需要手动导入)
13
- * - true 或 'css': 导入编译后的 CSS(推荐)
14
- * - 'scss': 导入 SCSS 源文件
13
+ * - true 或 'css': 自动导入所有样式文件(推荐)
14
+ * * @mc-markets/ui/dist/style.css - 主样式
15
+ * * @mc-markets/ui/styles/font - 字体图标
16
+ * * @mc-markets/ui/styles/colorfont - 彩色字体图标
17
+ * - 'scss': 导入 SCSS 源文件 + 字体图标
18
+ * * @mc-markets/ui/packages/styles/index.scss
19
+ * * @mc-markets/ui/styles/font
15
20
  * @returns {Object} 解析器配置
16
21
  */
17
22
  export function McMarketsUIResolver(options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../packages/resolver.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,8CAPG;IAAwB,MAAM,EAAtB,MAAM;IACwB,WAAW,EAAzC,OAAO,GAAC,KAAK,GAAC,MAAM;CAI5B,OA0FF;AAED;;;GAGG;AACH;;EA+EC"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../packages/resolver.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AACH,8CAZG;IAAwB,MAAM,EAAtB,MAAM;IACwB,WAAW,EAAzC,OAAO,GAAC,KAAK,GAAC,MAAM;CAGtB,OAgGR;AAED;;;GAGG;AACH;;EA+EC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mc-markets/ui",
3
3
  "private": false,
4
- "version": "1.0.94",
4
+ "version": "1.0.95",
5
5
  "type": "module",
6
6
  "author": "chenyu",
7
7
  "description": "Vue 3 组件库,基于 Element Plus 的自定义组件",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "./resolver": {
18
18
  "import": "./packages/resolver.js",
19
- "require": "./packages/resolver.js",
19
+ "require": "./packages/resolver.cjs",
20
20
  "types": "./packages/resolver.d.ts"
21
21
  },
22
22
  "./styles/index": "./packages/styles/index.scss",
@@ -32,11 +32,11 @@
32
32
  "packages/hooks",
33
33
  "packages/utils",
34
34
  "packages/resolver.js",
35
+ "packages/resolver.cjs",
35
36
  "packages/resolver.d.ts",
36
37
  "README.md",
37
38
  "USAGE_GUIDE.md",
38
39
  "QUICK_START.md",
39
- "CHANGELOG.md",
40
40
  "vite.config.example.js"
41
41
  ],
42
42
  "keywords": [
@@ -0,0 +1,202 @@
1
+ /**
2
+ * @mc-markets/ui 组件解析器 (CommonJS 版本)
3
+ * 用于 unplugin-vue-components 和 unplugin-auto-import
4
+ *
5
+ * 支持自动导入组件和 API
6
+ */
7
+
8
+ /**
9
+ * 组件解析器
10
+ * @param {Object} options - 配置选项
11
+ * @param {string} options.prefix - 组件前缀,默认 'm'
12
+ * @param {boolean|'css'|'scss'} options.importStyle - 样式导入方式
13
+ * - false: 不导入样式(需要手动导入)
14
+ * - true 或 'css': 自动导入所有样式文件(推荐)
15
+ * * @mc-markets/ui/dist/style.css - 主样式
16
+ * * @mc-markets/ui/styles/font - 字体图标
17
+ * * @mc-markets/ui/styles/colorfont - 彩色字体图标
18
+ * - 'scss': 导入 SCSS 源文件 + 字体图标
19
+ * * @mc-markets/ui/packages/styles/index.scss
20
+ * * @mc-markets/ui/styles/font
21
+ * @returns {Object} 解析器配置
22
+ */
23
+ function McMarketsUIResolver(options = {}) {
24
+ const {
25
+ prefix = 'm',
26
+ importStyle = 'css'
27
+ } = options
28
+
29
+ // 标记是否已导入样式(避免重复导入)
30
+ let styleImported = false
31
+
32
+ return {
33
+ type: 'component',
34
+ resolve: (name) => {
35
+ // 只处理指定前缀的组件
36
+ const prefixPattern = new RegExp(`^${prefix}(?:-|[A-Z])`, 'i')
37
+ if (!prefixPattern.test(name)) {
38
+ return
39
+ }
40
+
41
+ // 组件名映射表(处理特殊命名)
42
+ const componentMap = {
43
+ // 自定义组件
44
+ 'MIcon': 'Icon',
45
+ 'MButton': 'Button',
46
+ 'MInput': 'Input',
47
+ 'MForm': 'Form',
48
+ 'MFormItem': 'FormItem',
49
+ 'MTooltip': 'Tooltip',
50
+ 'MSelect': 'Select',
51
+ 'MOption': 'Option',
52
+ 'MOptionGroup': 'OptionGroup',
53
+ 'MPagination': 'Pagination',
54
+ 'MRadio': 'Radio',
55
+ 'MRadioGroup': 'RadioGroup',
56
+ 'MRadioButton': 'RadioButton',
57
+ 'MSwitch': 'Switch',
58
+ 'MTag': 'Tag',
59
+ 'MAlert': 'Alert',
60
+ 'MDialog': 'Dialog',
61
+ 'MNotification': 'Notification',
62
+ 'MMessage': 'Message',
63
+ 'MNotifiMessage': 'NotifiMessage',
64
+ 'MDatePicker': 'DatePicker',
65
+ 'MEmpty': 'Empty',
66
+ 'MTable': 'Table',
67
+ 'MTableColumn': 'TableColumn',
68
+ 'MBanner': 'Banner',
69
+ 'MTabs': 'Tabs',
70
+ 'MTabPane': 'TabPane',
71
+ 'MTabCard': 'TabCard',
72
+ 'MTabCardItem': 'TabCardItem',
73
+ 'MBreadcrumb': 'Breadcrumb',
74
+ 'MBreadcrumbSeparator': 'BreadcrumbSeparator',
75
+ }
76
+
77
+ // 检查是否是已定义的组件
78
+ const componentName = componentMap[name]
79
+
80
+ if (componentName || name.startsWith('M')) {
81
+ // 确定样式文件路径(支持导入多个样式文件)
82
+ let sideEffects
83
+
84
+ if (importStyle && !styleImported) {
85
+ if (importStyle === 'scss') {
86
+ // 导入 SCSS 源文件 + 字体图标
87
+ sideEffects = [
88
+ '@mc-markets/ui/packages/styles/index.scss',
89
+ '@mc-markets/ui/styles/font'
90
+ ]
91
+ } else if (importStyle === true || importStyle === 'css') {
92
+ // 导入编译后的 CSS + 字体图标
93
+ sideEffects = [
94
+ '@mc-markets/ui/dist/style.css',
95
+ '@mc-markets/ui/styles/font',
96
+ '@mc-markets/ui/styles/colorfont'
97
+ ]
98
+ }
99
+ styleImported = true
100
+ }
101
+
102
+ // 返回组件导入配置
103
+ return {
104
+ name,
105
+ from: '@mc-markets/ui',
106
+ sideEffects
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ /**
114
+ * API 自动导入配置
115
+ * 用于 unplugin-auto-import
116
+ */
117
+ function getMcMarketsUIImports() {
118
+ return {
119
+ '@mc-markets/ui': [
120
+ // 组件
121
+ 'MIcon',
122
+ 'MButton',
123
+ 'MInput',
124
+ 'MForm',
125
+ 'MFormItem',
126
+ 'MTooltip',
127
+ 'MSelect',
128
+ 'MOption',
129
+ 'MOptionGroup',
130
+ 'MPagination',
131
+ 'MRadio',
132
+ 'MRadioGroup',
133
+ 'MRadioButton',
134
+ 'MSwitch',
135
+ 'MTag',
136
+ 'MAlert',
137
+ 'MDialog',
138
+ 'MNotification',
139
+ 'MMessage',
140
+ 'MNotifiMessage',
141
+ 'MDatePicker',
142
+ 'MEmpty',
143
+ 'MTable',
144
+ 'MTableColumn',
145
+ 'MBanner',
146
+ 'MTabs',
147
+ 'MTabPane',
148
+ 'MTabCard',
149
+ 'MTabCardItem',
150
+ 'MBreadcrumb',
151
+
152
+ // API 方法
153
+ 'Message',
154
+ 'NotifiMessage',
155
+ 'MMessageBox',
156
+
157
+ // 工具函数
158
+ 'addOverrideClass',
159
+ 'addComponentOverride',
160
+ 'applyGlobalOverride',
161
+ 'forceRefreshStyles',
162
+ 'createOverrideComponent',
163
+ 'checkComponentRegistration',
164
+
165
+ // Element Plus 转换组件
166
+ 'MButtonGroup',
167
+ 'MCarousel',
168
+ 'MCarouselItem',
169
+ 'MCascader',
170
+ 'MCascaderPanel',
171
+ 'MCheckTag',
172
+ 'MCalendar',
173
+ 'MTimePicker',
174
+ 'MDateTimePicker',
175
+ 'MColorPicker',
176
+ 'MTransfer',
177
+ 'MTree',
178
+ 'MTreeSelect',
179
+ 'MUpload',
180
+ 'MImage',
181
+ 'MImageViewer',
182
+ 'MBacktop',
183
+ 'MInfiniteScroll',
184
+ 'MAffix',
185
+ 'MScrollbar',
186
+ 'MResult',
187
+ 'MSkeleton',
188
+ 'MLoading',
189
+ 'MSpinner',
190
+ 'MProgress',
191
+ 'MBadge',
192
+ 'MAvatar',
193
+ 'MConfigProvider'
194
+ ]
195
+ }
196
+ }
197
+
198
+ // CommonJS 导出
199
+ module.exports = McMarketsUIResolver
200
+ module.exports.McMarketsUIResolver = McMarketsUIResolver
201
+ module.exports.getMcMarketsUIImports = getMcMarketsUIImports
202
+ module.exports.default = McMarketsUIResolver
@@ -16,8 +16,13 @@ export interface McMarketsUIResolverOptions {
16
16
  /**
17
17
  * 样式导入方式
18
18
  * - false: 不导入样式(需要手动在 main.js 中导入)
19
- * - true 或 'css': 导入编译后的 CSS 文件(推荐)
20
- * - 'scss': 导入 SCSS 源文件(可自定义变量)
19
+ * - true 或 'css': 自动导入所有必需的样式文件(推荐)
20
+ * * @mc-markets/ui/dist/style.css - 主样式
21
+ * * @mc-markets/ui/styles/font - 字体图标
22
+ * * @mc-markets/ui/styles/colorfont - 彩色字体图标
23
+ * - 'scss': 导入 SCSS 源文件 + 字体图标
24
+ * * @mc-markets/ui/packages/styles/index.scss
25
+ * * @mc-markets/ui/styles/font
21
26
  * @default 'css'
22
27
  */
23
28
  importStyle?: boolean | 'css' | 'scss'
@@ -11,8 +11,13 @@
11
11
  * @param {string} options.prefix - 组件前缀,默认 'm'
12
12
  * @param {boolean|'css'|'scss'} options.importStyle - 样式导入方式
13
13
  * - false: 不导入样式(需要手动导入)
14
- * - true 或 'css': 导入编译后的 CSS(推荐)
15
- * - 'scss': 导入 SCSS 源文件
14
+ * - true 或 'css': 自动导入所有样式文件(推荐)
15
+ * * @mc-markets/ui/dist/style.css - 主样式
16
+ * * @mc-markets/ui/styles/font - 字体图标
17
+ * * @mc-markets/ui/styles/colorfont - 彩色字体图标
18
+ * - 'scss': 导入 SCSS 源文件 + 字体图标
19
+ * * @mc-markets/ui/packages/styles/index.scss
20
+ * * @mc-markets/ui/styles/font
16
21
  * @returns {Object} 解析器配置
17
22
  */
18
23
  export function McMarketsUIResolver(options = {}) {
@@ -190,6 +195,6 @@ export function getMcMarketsUIImports() {
190
195
  }
191
196
  }
192
197
 
193
- // 默认导出解析器
198
+ // 默认导出
194
199
  export default McMarketsUIResolver
195
200
 
@@ -30,9 +30,11 @@ export default defineConfig({
30
30
  // 例如:MButton, MInput, m-button, m-input
31
31
  prefix: 'm',
32
32
 
33
- // 是否自动导入样式,默认为 true
34
- // 设置为 true 时会自动导入组件库的样式文件
35
- importStyle: true
33
+ // 样式导入方式,默认为 'css'
34
+ // 'css': 自动导入所有必需的样式(主样式 + 字体图标)
35
+ // 'scss': 导入 SCSS 源文件 + 字体图标
36
+ // false: 不自动导入,需手动在 main.js 中导入
37
+ importStyle: 'css'
36
38
  })
37
39
  ],
38
40