Commit d6cdff97b603f05fb8653534e718ebef112c9cf4
Committed by
GitHub
1 parent
97fe8e20
fix: direct import for antdv subcomponents supported(8b00112d) (#1322)
* fix: direct import for antdv subcomponents supported 修复commit<8b00112d>使用直接过滤部分antdv子组件的方式,导致build后刷新页面子组件样式会丢失的问题。 * Update styleImport.ts * Update styleImport.ts
Showing
1 changed file
with
26 additions
and
16 deletions
build/vite/plugin/styleImport.ts
... | ... | @@ -14,29 +14,15 @@ export function configStyleImportPlugin(isBuild: boolean) { |
14 | 14 | libraryName: 'ant-design-vue', |
15 | 15 | esModule: true, |
16 | 16 | resolveStyle: (name) => { |
17 | - // 这里是“子组件”列表,无需额外引入样式文件 | |
17 | + // 这里是无需额外引入样式文件的“子组件”列表 | |
18 | 18 | const ignoreList = [ |
19 | - 'typography-text', | |
20 | - 'typography-title', | |
21 | - 'typography-paragraph', | |
22 | - 'typography-link', | |
23 | 19 | 'anchor-link', |
24 | 20 | 'sub-menu', |
25 | 21 | 'menu-item', |
26 | 22 | 'menu-item-group', |
27 | - 'dropdown-button', | |
28 | 23 | 'breadcrumb-item', |
29 | 24 | 'breadcrumb-separator', |
30 | - 'input-password', | |
31 | - 'input-search', | |
32 | - 'input-group', | |
33 | 25 | 'form-item', |
34 | - 'radio-group', | |
35 | - 'checkbox-group', | |
36 | - 'layout-sider', | |
37 | - 'layout-content', | |
38 | - 'layout-footer', | |
39 | - 'layout-header', | |
40 | 26 | 'step', |
41 | 27 | 'select-option', |
42 | 28 | 'select-opt-group', |
... | ... | @@ -59,7 +45,31 @@ export function configStyleImportPlugin(isBuild: boolean) { |
59 | 45 | 'skeleton-image', |
60 | 46 | 'skeleton-button', |
61 | 47 | ]; |
62 | - return ignoreList.includes(name) ? '' : `ant-design-vue/es/${name}/style/index`; | |
48 | + // 这里是需要额外引入样式的子组件列表 | |
49 | + // 单独引入子组件时需引入组件样式,否则会在打包后导致子组件样式丢失 | |
50 | + const replaceList = { | |
51 | + 'typography-text': 'typography', | |
52 | + 'typography-title': 'typography', | |
53 | + 'typography-paragraph': 'typography', | |
54 | + 'typography-link': 'typography', | |
55 | + 'dropdown-button': 'dropdown', | |
56 | + 'input-password': 'input', | |
57 | + 'input-search': 'input', | |
58 | + 'input-group': 'input', | |
59 | + 'radio-group': 'radio', | |
60 | + 'checkbox-group': 'checkbox', | |
61 | + 'layout-sider': 'layout', | |
62 | + 'layout-content': 'layout', | |
63 | + 'layout-footer': 'layout', | |
64 | + 'layout-header': 'layout', | |
65 | + 'month-picker': 'date-picker', | |
66 | + }; | |
67 | + | |
68 | + return ignoreList.includes(name) | |
69 | + ? '' | |
70 | + : replaceList.hasOwnProperty(name) | |
71 | + ? `ant-design-vue/es/${replaceList[name]}/style/index` | |
72 | + : `ant-design-vue/es/${name}/style/index`; | |
63 | 73 | }, |
64 | 74 | }, |
65 | 75 | ], | ... | ... |