import { VantResolver } from "@vant/auto-import-resolver" import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import { fileURLToPath, URL } from 'node:url' import UnoCSS from 'unocss/vite' import AutoImport from 'unplugin-auto-import/vite' import { TDesignResolver } from "unplugin-vue-components/resolvers" import Components from 'unplugin-vue-components/vite' import { getPascalCaseRouteName, VueRouterAutoImports } from "unplugin-vue-router" import VueRouter from 'unplugin-vue-router/vite' import { defineConfig, loadEnv } from 'vite' import vueDevTools from 'vite-plugin-vue-devtools' // https://vitejs.dev/config/ export default defineConfig(({ mode, command }) => { const isBuild = command === "build"; const env = loadEnv(mode, process.cwd()); return { base: env.VITE_BASE, plugins: [ VueRouter({ exclude: ["**/__*", "**/__*/**/*"], getRouteName: (routeNode) => getPascalCaseRouteName(routeNode), logs: false, }), // other plugins AutoImport({ resolvers: [ TDesignResolver({ library: 'mobile-vue' }), VantResolver({ importStyle: true }), ], imports: [ 'pinia', 'vue', VueRouterAutoImports, ], }), Components({ resolvers: [ TDesignResolver({ library: 'mobile-vue' }), VantResolver({ importStyle: true }), ], }), UnoCSS(), vue(), vueJsx(), vueDevTools(), ], define: { $__DEV__: JSON.stringify(!isBuild), }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, build: { sourcemap: mode !== "production", rollupOptions: { output: { // chunkFileNames: 'assets/chunk/[name]_[hash].js', // entryFileNames: 'assets/entry/[name]_[hash].js', // assetFileNames: 'assets/[ext]/[name]_[hash].[ext]', manualChunks: (id/* , { getModuleIds, getModuleInfo } */) => { if (id.includes('node_modules') && env.VITE_SPLIT_CHUNKS === 'true') { let pkgName = id; pkgName = pkgName.split('.pnpm/')?.[1] || pkgName; pkgName = pkgName.split('node_modules/')?.[1] || pkgName; pkgName = pkgName.startsWith('@') ? pkgName.split('/')[0] + '/' + pkgName.split('/')[1] : pkgName.split('/')[0]; if ( pkgName.startsWith('@vue/') || pkgName === 'vue-demi' ) pkgName = 'vue' return `libs/${pkgName}`; } }, } } }, } })