提交 | 用户 | age
|
07c18d
|
1 |
/** |
V |
2 |
* Introduces component library styles on demand. |
|
3 |
* https://github.com/anncwb/vite-plugin-style-import |
|
4 |
*/ |
6753e2
|
5 |
import { createStyleImportPlugin, VxeTableResolve } from 'vite-plugin-style-import'; |
c2f654
|
6 |
|
52257f
|
7 |
export function configStyleImportPlugin(_isBuild: boolean) { |
2abc82
|
8 |
if (!_isBuild) { |
A |
9 |
return []; |
|
10 |
} |
af6ab9
|
11 |
const styleImportPlugin = createStyleImportPlugin({ |
c2f654
|
12 |
libs: [ |
V |
13 |
{ |
|
14 |
libraryName: 'ant-design-vue', |
6392b7
|
15 |
esModule: true, |
c2f654
|
16 |
resolveStyle: (name) => { |
d6cdff
|
17 |
// 这里是无需额外引入样式文件的“子组件”列表 |
8b0011
|
18 |
const ignoreList = [ |
无 |
19 |
'anchor-link', |
|
20 |
'sub-menu', |
|
21 |
'menu-item', |
52257f
|
22 |
'menu-divider', |
8b0011
|
23 |
'menu-item-group', |
无 |
24 |
'breadcrumb-item', |
|
25 |
'breadcrumb-separator', |
|
26 |
'form-item', |
|
27 |
'step', |
|
28 |
'select-option', |
|
29 |
'select-opt-group', |
|
30 |
'card-grid', |
|
31 |
'card-meta', |
|
32 |
'collapse-panel', |
|
33 |
'descriptions-item', |
|
34 |
'list-item', |
|
35 |
'list-item-meta', |
|
36 |
'table-column', |
|
37 |
'table-column-group', |
|
38 |
'tab-pane', |
|
39 |
'tab-content', |
|
40 |
'timeline-item', |
|
41 |
'tree-node', |
|
42 |
'skeleton-input', |
|
43 |
'skeleton-avatar', |
|
44 |
'skeleton-title', |
|
45 |
'skeleton-paragraph', |
|
46 |
'skeleton-image', |
|
47 |
'skeleton-button', |
|
48 |
]; |
d6cdff
|
49 |
// 这里是需要额外引入样式的子组件列表 |
M |
50 |
// 单独引入子组件时需引入组件样式,否则会在打包后导致子组件样式丢失 |
|
51 |
const replaceList = { |
404128
|
52 |
textarea: 'input', |
d6cdff
|
53 |
'typography-text': 'typography', |
M |
54 |
'typography-title': 'typography', |
|
55 |
'typography-paragraph': 'typography', |
|
56 |
'typography-link': 'typography', |
|
57 |
'dropdown-button': 'dropdown', |
|
58 |
'input-password': 'input', |
|
59 |
'input-search': 'input', |
|
60 |
'input-group': 'input', |
|
61 |
'radio-group': 'radio', |
|
62 |
'checkbox-group': 'checkbox', |
|
63 |
'layout-sider': 'layout', |
|
64 |
'layout-content': 'layout', |
|
65 |
'layout-footer': 'layout', |
|
66 |
'layout-header': 'layout', |
|
67 |
'month-picker': 'date-picker', |
8932bf
|
68 |
'range-picker': 'date-picker', |
c00153
|
69 |
'image-preview-group': 'image', |
d6cdff
|
70 |
}; |
M |
71 |
|
|
72 |
return ignoreList.includes(name) |
|
73 |
? '' |
|
74 |
: replaceList.hasOwnProperty(name) |
|
75 |
? `ant-design-vue/es/${replaceList[name]}/style/index` |
|
76 |
: `ant-design-vue/es/${name}/style/index`; |
c2f654
|
77 |
}, |
V |
78 |
}, |
|
79 |
], |
6753e2
|
80 |
resolves: [VxeTableResolve()], |
c2f654
|
81 |
}); |
a7c8c6
|
82 |
return styleImportPlugin; |
c2f654
|
83 |
} |