| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /**
- * Vite 插件配置
- */
- import vue from '@vitejs/plugin-vue';
- import vueJsx from '@vitejs/plugin-vue-jsx';
- import AutoImport from 'unplugin-auto-import/vite';
- import Components from 'unplugin-vue-components/vite';
- import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
- import { visualizer } from 'rollup-plugin-visualizer';
- /**
- * 获取基础插件配置
- */
- export function getPlugins(isProd) {
- const plugins = [
- vue(),
- vueJsx(),
-
- // 自动导入 Vue API 和 Vue Router API
- AutoImport({
- imports: [
- 'vue',
- 'vue-router',
- 'pinia',
- '@vueuse/core',
- {
- 'ant-design-vue/es': [
- 'message',
- 'notification',
- 'Modal',
- ],
- 'dayjs': [
- ['default', 'dayjs']
- ],
- 'axios': [
- ['default', 'axios']
- ],
- }
- ],
- dts: true, // 生成类型定义文件
- eslintrc: {
- enabled: true, // 生成 .eslintrc-auto-import.json
- },
- }),
-
- // 自动导入组件
- Components({
- resolvers: [
- AntDesignVueResolver({
- importStyle: false, // css in js
- }),
- ],
- dts: true, // 生成类型定义文件
- directoryAsNamespace: false,
- globalNamespaces: [],
- directives: true,
- include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
- exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/],
- }),
- ];
-
- // 生产环境添加额外的插件
- if (isProd) {
- // 添加打包分析插件
- plugins.push(
- visualizer({
- filename: 'dist/stats.html',
- open: true,
- gzipSize: true,
- brotliSize: true,
- })
- );
- }
-
- return plugins;
- }
|