styleImport.ts 1.93 KB
/**
 *  Introduces component library styles on demand.
 * https://github.com/anncwb/vite-plugin-style-import
 */
 import styleImport from 'vite-plugin-style-import';

 export function configStyleImportPlugin(isBuild: boolean) {
   if (!isBuild) {
     return [];
   }
   const styleImportPlugin = styleImport({
     libs: [
       {
         libraryName: 'ant-design-vue',
         esModule: true,
         resolveStyle: (name) => {
           // 这里是“子组件”列表,无需额外引入样式文件
           const ignoreList = [
             'typography-text',
             'typography-title',
             'typography-paragraph',
             'typography-link',
             'anchor-link',
             'sub-menu',
             'menu-item',
             'menu-item-group',
             'dropdown-button',
             'breadcrumb-item',
             'breadcrumb-separator',
             'input-password',
             'input-search',
             'input-group',
             'form-item',
             'radio-group',
             'checkbox-group',
             'layout-sider',
             'layout-content',
             'layout-footer',
             'layout-header',
             'step',
             'select-option',
             'select-opt-group',
             'card-grid',
             'card-meta',
             'collapse-panel',
             'descriptions-item',
             'list-item',
             'list-item-meta',
             'table-column',
             'table-column-group',
             'tab-pane',
             'tab-content',
             'timeline-item',
             'tree-node',
             'skeleton-input',
             'skeleton-avatar',
             'skeleton-title',
             'skeleton-paragraph',
             'skeleton-image',
             'skeleton-button',
           ];
           return ignoreList.includes(name) ? '' : `ant-design-vue/es/${name}/style/index`;
         },
       },
     ],
   });
   return styleImportPlugin;
 }