first commit

This commit is contained in:
muzi
2025-06-16 14:42:26 +08:00
commit 6f06721506
149 changed files with 56883 additions and 0 deletions

View File

@ -0,0 +1,41 @@
/**
* 自动引入API
* */
import AutoImport from 'unplugin-auto-import/vite';
import { ArcoResolver } from 'unplugin-vue-components/resolvers';
import IconsResolver from 'unplugin-icons/resolver';
import { layoutsResolver } from '../utils';
export function configAutoImport() {
return AutoImport({
imports: [
'vue',
'vue-router',
'pinia',
'@vueuse/core',
{
dayjs: [['default', 'dayjs']],
'lodash-es': ['cloneDeep', 'omit', 'pick'],
'@/hooks': ['useModal'],
},
],
resolvers: [
ArcoResolver({
resolveIcons: {
enable: true,
},
}),
IconsResolver({
enabledCollections: [],
}),
layoutsResolver(),
],
eslintrc: {
enabled: true,
filepath: './config/unplugin/.eslintrc-auto-import.json',
},
dts: './config/unplugin/auto-imports.d.ts',
});
}

View File

@ -0,0 +1,57 @@
/**
* 自动引入组件
* */
import { kebabCase } from 'unplugin-vue-components';
import Components from 'unplugin-vue-components/vite';
import { ArcoResolver } from 'unplugin-vue-components/resolvers';
import IconsResolver from 'unplugin-icons/resolver';
import { getSep, getPath, setResolve, layoutsResolver } from '../utils';
export function configComponents() {
return Components({
dirs: ['src/components'],
extensions: ['vue'],
resolvers: [
ArcoResolver({
resolveIcons: {
enable: true,
},
sideEffect: true,
}),
IconsResolver({
prefix: false,
customCollections: ['i'],
enabledCollections: [],
}),
layoutsResolver(),
{
type: 'component',
resolve: (name) => {
const [prefix, folder] = kebabCase(name).split('-');
// 命名导出组件
if (prefix === 'eos') {
return {
name: name.slice(3),
from: getPath(`${getSep('src')}/components`, { folder }),
};
}
// 默认导出组件
if (prefix === 'eo') {
return setResolve(name);
}
if (prefix === 'base') {
return {
name: name.slice(4),
from: `${getSep('src')}/components/_base`,
};
}
},
},
],
directoryAsNamespace: true,
dts: './config/unplugin/components.d.ts',
});
}

14
config/unplugin/icons.ts Normal file
View File

@ -0,0 +1,14 @@
/**
* 自动引入 svg 图标
* */
import Icons from 'unplugin-icons/vite';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
export function configIcons() {
return Icons({
compiler: 'vue3',
customCollections: {
i: FileSystemIconLoader('./src/assets', (svg) => svg.replace(/^<svg /, '<svg class="eo-i" ')),
},
});
}

3
config/unplugin/index.ts Normal file
View File

@ -0,0 +1,3 @@
export * from './auto-import';
export * from './component';
export * from './icons';