feat: 前端搭建
This commit is contained in:
39
Yi.Ai.Vue3/.build/plugins/index.ts
Normal file
39
Yi.Ai.Vue3/.build/plugins/index.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import type { ConfigEnv, PluginOption } from 'vite';
|
||||
import path from 'node:path';
|
||||
import vue from '@vitejs/plugin-vue';
|
||||
import UnoCSS from 'unocss/vite';
|
||||
import AutoImport from 'unplugin-auto-import/vite';
|
||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
|
||||
import Components from 'unplugin-vue-components/vite';
|
||||
import envTyped from 'vite-plugin-env-typed';
|
||||
import createSvgIcon from './svg-icon';
|
||||
|
||||
const root = path.resolve(__dirname, '../../');
|
||||
|
||||
function plugins({ mode, command }: ConfigEnv): PluginOption[] {
|
||||
return [
|
||||
UnoCSS(),
|
||||
envTyped({
|
||||
mode,
|
||||
envDir: root,
|
||||
envPrefix: 'VITE_',
|
||||
filePath: path.join(root, 'types', 'import_meta.d.ts'),
|
||||
}),
|
||||
vue(),
|
||||
AutoImport({
|
||||
imports: ['vue'],
|
||||
eslintrc: {
|
||||
enabled: true,
|
||||
},
|
||||
resolvers: [ElementPlusResolver()],
|
||||
dts: path.join(root, 'types', 'auto-imports.d.ts'),
|
||||
}),
|
||||
Components({
|
||||
resolvers: [ElementPlusResolver()],
|
||||
dts: path.join(root, 'types', 'components.d.ts'),
|
||||
}),
|
||||
createSvgIcon(command === 'build'),
|
||||
];
|
||||
}
|
||||
|
||||
export default plugins;
|
||||
21
Yi.Ai.Vue3/.build/plugins/svg-icon.ts
Normal file
21
Yi.Ai.Vue3/.build/plugins/svg-icon.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import path from 'node:path';
|
||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
|
||||
|
||||
const root = path.resolve(__dirname, '../../');
|
||||
|
||||
export default function createSvgIcon(isBuild: boolean) {
|
||||
return createSvgIconsPlugin({
|
||||
iconDirs: [
|
||||
path.join(root, 'src/assets/icons/svg'),
|
||||
path.join(root, 'src/assets/icons/Buildings'),
|
||||
path.join(root, 'src/assets/icons/Business'),
|
||||
path.join(root, 'src/assets/icons/Device'),
|
||||
path.join(root, 'src/assets/icons/Document'),
|
||||
path.join(root, 'src/assets/icons/Others'),
|
||||
path.join(root, 'src/assets/icons/System'),
|
||||
path.join(root, 'src/assets/icons/User'),
|
||||
],
|
||||
symbolId: 'icon-[dir]-[name]',
|
||||
svgoOptions: isBuild,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user