@mc-markets/ui 1.0.91 → 1.0.93
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/QUICK_START.md +379 -0
- package/README.md +244 -5
- package/USAGE_GUIDE.md +339 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/resolver.d.ts +29 -0
- package/dist/resolver.d.ts.map +1 -0
- package/package.json +22 -3
- package/packages/resolver.d.ts +115 -0
- package/packages/resolver.js +186 -0
- package/vite.config.example.js +161 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mc-markets/ui 组件解析器
|
|
3
|
+
* 用于 unplugin-vue-components 和 unplugin-auto-import
|
|
4
|
+
*
|
|
5
|
+
* 支持自动导入组件和 API
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 组件解析器
|
|
9
|
+
* @param {Object} options - 配置选项
|
|
10
|
+
* @param {string} options.prefix - 组件前缀,默认 'm'
|
|
11
|
+
* @param {boolean|'css'|'scss'} options.importStyle - 样式导入方式
|
|
12
|
+
* - false: 不导入样式(需要手动导入)
|
|
13
|
+
* - true 或 'css': 导入编译后的 CSS(推荐)
|
|
14
|
+
* - 'scss': 导入 SCSS 源文件
|
|
15
|
+
* @returns {Object} 解析器配置
|
|
16
|
+
*/
|
|
17
|
+
export function McMarketsUIResolver(options?: {
|
|
18
|
+
prefix: string;
|
|
19
|
+
importStyle: boolean | "css" | "scss";
|
|
20
|
+
}): any;
|
|
21
|
+
/**
|
|
22
|
+
* API 自动导入配置
|
|
23
|
+
* 用于 unplugin-auto-import
|
|
24
|
+
*/
|
|
25
|
+
export function getMcMarketsUIImports(): {
|
|
26
|
+
'@mc-markets/ui': string[];
|
|
27
|
+
};
|
|
28
|
+
export default McMarketsUIResolver;
|
|
29
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +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,OAiFF;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.
|
|
4
|
+
"version": "1.0.93",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "chenyu",
|
|
7
7
|
"description": "Vue 3 组件库,基于 Element Plus 的自定义组件",
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
"require": "./dist/index.cjs",
|
|
15
15
|
"types": "./dist/index.d.ts"
|
|
16
16
|
},
|
|
17
|
+
"./resolver": {
|
|
18
|
+
"import": "./packages/resolver.js",
|
|
19
|
+
"require": "./packages/resolver.js",
|
|
20
|
+
"types": "./packages/resolver.d.ts"
|
|
21
|
+
},
|
|
17
22
|
"./styles/index": "./packages/styles/index.scss",
|
|
18
23
|
"./styles/font": "./packages/styles/font/iconfont.css",
|
|
19
24
|
"./styles/colorfont": "./packages/styles/colorfont/iconfont.css",
|
|
@@ -26,13 +31,27 @@
|
|
|
26
31
|
"packages/components",
|
|
27
32
|
"packages/hooks",
|
|
28
33
|
"packages/utils",
|
|
29
|
-
"
|
|
34
|
+
"packages/resolver.js",
|
|
35
|
+
"packages/resolver.d.ts",
|
|
36
|
+
"README.md",
|
|
37
|
+
"USAGE_GUIDE.md",
|
|
38
|
+
"QUICK_START.md",
|
|
39
|
+
"CHANGELOG.md",
|
|
40
|
+
"vite.config.example.js"
|
|
30
41
|
],
|
|
31
42
|
"keywords": [
|
|
32
43
|
"vue3",
|
|
44
|
+
"vue",
|
|
33
45
|
"element-plus",
|
|
34
46
|
"ui-library",
|
|
35
|
-
"components"
|
|
47
|
+
"components",
|
|
48
|
+
"auto-import",
|
|
49
|
+
"unplugin",
|
|
50
|
+
"unplugin-vue-components",
|
|
51
|
+
"unplugin-auto-import",
|
|
52
|
+
"vite",
|
|
53
|
+
"webpack",
|
|
54
|
+
"typescript"
|
|
36
55
|
],
|
|
37
56
|
"license": "MIT",
|
|
38
57
|
"scripts": {
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mc-markets/ui 组件解析器类型声明
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 解析器配置选项
|
|
7
|
+
*/
|
|
8
|
+
export interface McMarketsUIResolverOptions {
|
|
9
|
+
/**
|
|
10
|
+
* 组件前缀
|
|
11
|
+
* @default 'm'
|
|
12
|
+
* @example 'm' -> MButton, MInput
|
|
13
|
+
*/
|
|
14
|
+
prefix?: string
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 是否自动导入样式
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
importStyle?: boolean
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 组件解析结果
|
|
25
|
+
*/
|
|
26
|
+
export interface ComponentResolveResult {
|
|
27
|
+
/**
|
|
28
|
+
* 组件名称
|
|
29
|
+
*/
|
|
30
|
+
name: string
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 导入路径
|
|
34
|
+
*/
|
|
35
|
+
from: string
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 副作用导入(如样式文件)
|
|
39
|
+
*/
|
|
40
|
+
sideEffects?: string
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 组件解析器
|
|
45
|
+
*/
|
|
46
|
+
export interface Resolver {
|
|
47
|
+
type: 'component'
|
|
48
|
+
resolve: (name: string) => ComponentResolveResult | undefined
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 自动导入配置
|
|
53
|
+
*/
|
|
54
|
+
export interface AutoImportConfig {
|
|
55
|
+
'@mc-markets/ui': string[]
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 创建 McMarketsUI 组件解析器
|
|
60
|
+
*
|
|
61
|
+
* @param options - 解析器配置选项
|
|
62
|
+
* @returns 解析器对象
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { McMarketsUIResolver } from '@mc-markets/ui/resolver'
|
|
67
|
+
* import Components from 'unplugin-vue-components/vite'
|
|
68
|
+
*
|
|
69
|
+
* export default {
|
|
70
|
+
* plugins: [
|
|
71
|
+
* Components({
|
|
72
|
+
* resolvers: [
|
|
73
|
+
* McMarketsUIResolver({
|
|
74
|
+
* prefix: 'm',
|
|
75
|
+
* importStyle: true
|
|
76
|
+
* })
|
|
77
|
+
* ]
|
|
78
|
+
* })
|
|
79
|
+
* ]
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function McMarketsUIResolver(
|
|
84
|
+
options?: McMarketsUIResolverOptions
|
|
85
|
+
): Resolver
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* 获取 McMarketsUI 自动导入配置
|
|
89
|
+
*
|
|
90
|
+
* @returns 自动导入配置对象
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* import { getMcMarketsUIImports } from '@mc-markets/ui/resolver'
|
|
95
|
+
* import AutoImport from 'unplugin-auto-import/vite'
|
|
96
|
+
*
|
|
97
|
+
* export default {
|
|
98
|
+
* plugins: [
|
|
99
|
+
* AutoImport({
|
|
100
|
+
* imports: [
|
|
101
|
+
* 'vue',
|
|
102
|
+
* getMcMarketsUIImports()
|
|
103
|
+
* ]
|
|
104
|
+
* })
|
|
105
|
+
* ]
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function getMcMarketsUIImports(): AutoImportConfig
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* 默认导出解析器
|
|
113
|
+
*/
|
|
114
|
+
export default McMarketsUIResolver
|
|
115
|
+
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mc-markets/ui 组件解析器
|
|
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': 导入编译后的 CSS(推荐)
|
|
15
|
+
* - 'scss': 导入 SCSS 源文件
|
|
16
|
+
* @returns {Object} 解析器配置
|
|
17
|
+
*/
|
|
18
|
+
export function McMarketsUIResolver(options = {}) {
|
|
19
|
+
const {
|
|
20
|
+
prefix = 'm',
|
|
21
|
+
importStyle = 'css'
|
|
22
|
+
} = options
|
|
23
|
+
|
|
24
|
+
// 标记是否已导入样式(避免重复导入)
|
|
25
|
+
let styleImported = false
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
type: 'component',
|
|
29
|
+
resolve: (name) => {
|
|
30
|
+
// 只处理指定前缀的组件
|
|
31
|
+
const prefixPattern = new RegExp(`^${prefix}(?:-|[A-Z])`, 'i')
|
|
32
|
+
if (!prefixPattern.test(name)) {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 组件名映射表(处理特殊命名)
|
|
37
|
+
const componentMap = {
|
|
38
|
+
// 自定义组件
|
|
39
|
+
'MIcon': 'Icon',
|
|
40
|
+
'MButton': 'Button',
|
|
41
|
+
'MInput': 'Input',
|
|
42
|
+
'MForm': 'Form',
|
|
43
|
+
'MFormItem': 'FormItem',
|
|
44
|
+
'MTooltip': 'Tooltip',
|
|
45
|
+
'MSelect': 'Select',
|
|
46
|
+
'MOption': 'Option',
|
|
47
|
+
'MOptionGroup': 'OptionGroup',
|
|
48
|
+
'MPagination': 'Pagination',
|
|
49
|
+
'MRadio': 'Radio',
|
|
50
|
+
'MRadioGroup': 'RadioGroup',
|
|
51
|
+
'MRadioButton': 'RadioButton',
|
|
52
|
+
'MSwitch': 'Switch',
|
|
53
|
+
'MTag': 'Tag',
|
|
54
|
+
'MAlert': 'Alert',
|
|
55
|
+
'MDialog': 'Dialog',
|
|
56
|
+
'MNotification': 'Notification',
|
|
57
|
+
'MMessage': 'Message',
|
|
58
|
+
'MNotifiMessage': 'NotifiMessage',
|
|
59
|
+
'MDatePicker': 'DatePicker',
|
|
60
|
+
'MEmpty': 'Empty',
|
|
61
|
+
'MTable': 'Table',
|
|
62
|
+
'MTableColumn': 'TableColumn',
|
|
63
|
+
'MBanner': 'Banner',
|
|
64
|
+
'MTabs': 'Tabs',
|
|
65
|
+
'MTabPane': 'TabPane',
|
|
66
|
+
'MTabCard': 'TabCard',
|
|
67
|
+
'MTabCardItem': 'TabCardItem',
|
|
68
|
+
'MBreadcrumb': 'Breadcrumb',
|
|
69
|
+
'MBreadcrumbSeparator': 'BreadcrumbSeparator',
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// 检查是否是已定义的组件
|
|
73
|
+
const componentName = componentMap[name]
|
|
74
|
+
|
|
75
|
+
if (componentName || name.startsWith('M')) {
|
|
76
|
+
// 确定样式文件路径
|
|
77
|
+
let sideEffects
|
|
78
|
+
|
|
79
|
+
if (importStyle && !styleImported) {
|
|
80
|
+
if (importStyle === 'scss') {
|
|
81
|
+
sideEffects = '@mc-markets/ui/packages/styles/index.scss'
|
|
82
|
+
} else if (importStyle === true || importStyle === 'css') {
|
|
83
|
+
sideEffects = '@mc-markets/ui/dist/style.css'
|
|
84
|
+
}
|
|
85
|
+
styleImported = true
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// 返回组件导入配置
|
|
89
|
+
return {
|
|
90
|
+
name,
|
|
91
|
+
from: '@mc-markets/ui',
|
|
92
|
+
sideEffects
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* API 自动导入配置
|
|
101
|
+
* 用于 unplugin-auto-import
|
|
102
|
+
*/
|
|
103
|
+
export function getMcMarketsUIImports() {
|
|
104
|
+
return {
|
|
105
|
+
'@mc-markets/ui': [
|
|
106
|
+
// 组件
|
|
107
|
+
'MIcon',
|
|
108
|
+
'MButton',
|
|
109
|
+
'MInput',
|
|
110
|
+
'MForm',
|
|
111
|
+
'MFormItem',
|
|
112
|
+
'MTooltip',
|
|
113
|
+
'MSelect',
|
|
114
|
+
'MOption',
|
|
115
|
+
'MOptionGroup',
|
|
116
|
+
'MPagination',
|
|
117
|
+
'MRadio',
|
|
118
|
+
'MRadioGroup',
|
|
119
|
+
'MRadioButton',
|
|
120
|
+
'MSwitch',
|
|
121
|
+
'MTag',
|
|
122
|
+
'MAlert',
|
|
123
|
+
'MDialog',
|
|
124
|
+
'MNotification',
|
|
125
|
+
'MMessage',
|
|
126
|
+
'MNotifiMessage',
|
|
127
|
+
'MDatePicker',
|
|
128
|
+
'MEmpty',
|
|
129
|
+
'MTable',
|
|
130
|
+
'MTableColumn',
|
|
131
|
+
'MBanner',
|
|
132
|
+
'MTabs',
|
|
133
|
+
'MTabPane',
|
|
134
|
+
'MTabCard',
|
|
135
|
+
'MTabCardItem',
|
|
136
|
+
'MBreadcrumb',
|
|
137
|
+
|
|
138
|
+
// API 方法
|
|
139
|
+
'Message',
|
|
140
|
+
'NotifiMessage',
|
|
141
|
+
'MMessageBox',
|
|
142
|
+
|
|
143
|
+
// 工具函数
|
|
144
|
+
'addOverrideClass',
|
|
145
|
+
'addComponentOverride',
|
|
146
|
+
'applyGlobalOverride',
|
|
147
|
+
'forceRefreshStyles',
|
|
148
|
+
'createOverrideComponent',
|
|
149
|
+
'checkComponentRegistration',
|
|
150
|
+
|
|
151
|
+
// Element Plus 转换组件
|
|
152
|
+
'MButtonGroup',
|
|
153
|
+
'MCarousel',
|
|
154
|
+
'MCarouselItem',
|
|
155
|
+
'MCascader',
|
|
156
|
+
'MCascaderPanel',
|
|
157
|
+
'MCheckTag',
|
|
158
|
+
'MCalendar',
|
|
159
|
+
'MTimePicker',
|
|
160
|
+
'MDateTimePicker',
|
|
161
|
+
'MColorPicker',
|
|
162
|
+
'MTransfer',
|
|
163
|
+
'MTree',
|
|
164
|
+
'MTreeSelect',
|
|
165
|
+
'MUpload',
|
|
166
|
+
'MImage',
|
|
167
|
+
'MImageViewer',
|
|
168
|
+
'MBacktop',
|
|
169
|
+
'MInfiniteScroll',
|
|
170
|
+
'MAffix',
|
|
171
|
+
'MScrollbar',
|
|
172
|
+
'MResult',
|
|
173
|
+
'MSkeleton',
|
|
174
|
+
'MLoading',
|
|
175
|
+
'MSpinner',
|
|
176
|
+
'MProgress',
|
|
177
|
+
'MBadge',
|
|
178
|
+
'MAvatar',
|
|
179
|
+
'MConfigProvider'
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// 默认导出解析器
|
|
185
|
+
export default McMarketsUIResolver
|
|
186
|
+
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 这是一个使用 @mc-markets/ui 的 Vite 配置示例
|
|
3
|
+
* 包含了自动按需导入的完整配置
|
|
4
|
+
*
|
|
5
|
+
* 使用方法:
|
|
6
|
+
* 1. 复制此文件并重命名为 vite.config.js
|
|
7
|
+
* 2. 安装必要的依赖:
|
|
8
|
+
* npm install -D unplugin-auto-import unplugin-vue-components
|
|
9
|
+
* 3. 根据你的项目需求调整配置
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { defineConfig } from 'vite'
|
|
13
|
+
import vue from '@vitejs/plugin-vue'
|
|
14
|
+
import AutoImport from 'unplugin-auto-import/vite'
|
|
15
|
+
import Components from 'unplugin-vue-components/vite'
|
|
16
|
+
import { McMarketsUIResolver, getMcMarketsUIImports } from '@mc-markets/ui/resolver'
|
|
17
|
+
|
|
18
|
+
export default defineConfig({
|
|
19
|
+
plugins: [
|
|
20
|
+
vue(),
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 自动导入组件
|
|
24
|
+
* 配置后可以直接在模板中使用组件,无需手动导入
|
|
25
|
+
*/
|
|
26
|
+
Components({
|
|
27
|
+
resolvers: [
|
|
28
|
+
McMarketsUIResolver({
|
|
29
|
+
// 组件前缀,默认为 'm'
|
|
30
|
+
// 例如:MButton, MInput, m-button, m-input
|
|
31
|
+
prefix: 'm',
|
|
32
|
+
|
|
33
|
+
// 是否自动导入样式,默认为 true
|
|
34
|
+
// 设置为 true 时会自动导入组件库的样式文件
|
|
35
|
+
importStyle: true
|
|
36
|
+
})
|
|
37
|
+
],
|
|
38
|
+
|
|
39
|
+
// 生成组件类型声明文件的路径
|
|
40
|
+
// TypeScript 项目推荐开启
|
|
41
|
+
dts: 'src/components.d.ts',
|
|
42
|
+
|
|
43
|
+
// 自动导入的本地组件目录
|
|
44
|
+
// 配置后,这些目录下的组件也会自动导入
|
|
45
|
+
dirs: ['src/components'],
|
|
46
|
+
|
|
47
|
+
// 组件的有效文件扩展名
|
|
48
|
+
extensions: ['vue'],
|
|
49
|
+
|
|
50
|
+
// 是否深度搜索子目录
|
|
51
|
+
deep: true,
|
|
52
|
+
|
|
53
|
+
// 包含的文件匹配模式
|
|
54
|
+
include: [/\.vue$/, /\.vue\?vue/],
|
|
55
|
+
|
|
56
|
+
// 排除的文件匹配模式
|
|
57
|
+
exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/],
|
|
58
|
+
}),
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 自动导入 API
|
|
62
|
+
* 配置后可以直接使用 Vue API 和组件库 API,无需手动导入
|
|
63
|
+
*/
|
|
64
|
+
AutoImport({
|
|
65
|
+
imports: [
|
|
66
|
+
// 自动导入 Vue 相关函数
|
|
67
|
+
'vue',
|
|
68
|
+
|
|
69
|
+
// 如果使用 Vue Router,可以取消下面这行的注释
|
|
70
|
+
// 'vue-router',
|
|
71
|
+
|
|
72
|
+
// 如果使用 Pinia,可以取消下面这行的注释
|
|
73
|
+
// 'pinia',
|
|
74
|
+
|
|
75
|
+
// 自动导入 @mc-markets/ui 的 API
|
|
76
|
+
// 包括:Message, NotifiMessage, MMessageBox 等
|
|
77
|
+
getMcMarketsUIImports()
|
|
78
|
+
],
|
|
79
|
+
|
|
80
|
+
// 生成 API 类型声明文件的路径
|
|
81
|
+
// TypeScript 项目推荐开启
|
|
82
|
+
dts: 'src/auto-imports.d.ts',
|
|
83
|
+
|
|
84
|
+
// 自动导入的本地目录
|
|
85
|
+
// dirs: ['src/composables', 'src/utils'],
|
|
86
|
+
|
|
87
|
+
// 为 ESLint 生成配置文件
|
|
88
|
+
eslintrc: {
|
|
89
|
+
enabled: true, // 首次运行时设为 true,生成后可改为 false
|
|
90
|
+
filepath: './.eslintrc-auto-import.json',
|
|
91
|
+
globalsPropValue: true,
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
// 自动导入的类型
|
|
95
|
+
// resolvers: [],
|
|
96
|
+
})
|
|
97
|
+
],
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* 开发服务器配置
|
|
101
|
+
*/
|
|
102
|
+
server: {
|
|
103
|
+
port: 3000,
|
|
104
|
+
open: true,
|
|
105
|
+
cors: true,
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 构建配置
|
|
110
|
+
*/
|
|
111
|
+
build: {
|
|
112
|
+
// 目标浏览器
|
|
113
|
+
target: 'es2015',
|
|
114
|
+
|
|
115
|
+
// 是否生成 source map
|
|
116
|
+
sourcemap: false,
|
|
117
|
+
|
|
118
|
+
// chunk 大小警告的限制
|
|
119
|
+
chunkSizeWarningLimit: 1500,
|
|
120
|
+
|
|
121
|
+
// rollup 配置
|
|
122
|
+
rollupOptions: {
|
|
123
|
+
output: {
|
|
124
|
+
// 分包策略
|
|
125
|
+
manualChunks: {
|
|
126
|
+
// 将 Vue 相关的包打包在一起
|
|
127
|
+
vue: ['vue', 'vue-router'],
|
|
128
|
+
|
|
129
|
+
// 将 @mc-markets/ui 和 Element Plus 打包在一起
|
|
130
|
+
'ui-vendor': ['@mc-markets/ui', 'element-plus'],
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* CSS 相关配置
|
|
138
|
+
*/
|
|
139
|
+
css: {
|
|
140
|
+
preprocessorOptions: {
|
|
141
|
+
scss: {
|
|
142
|
+
// 自动导入全局 SCSS 变量和 mixins
|
|
143
|
+
additionalData: `
|
|
144
|
+
// 如果需要自定义样式变量,可以在这里导入
|
|
145
|
+
// @import "@/styles/variables.scss";
|
|
146
|
+
`
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* 路径别名配置
|
|
153
|
+
*/
|
|
154
|
+
resolve: {
|
|
155
|
+
alias: {
|
|
156
|
+
'@': '/src',
|
|
157
|
+
// 如果需要其他别名,可以在这里添加
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
})
|
|
161
|
+
|