forked from PatchyVideo/Tungsten
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.ts
More file actions
85 lines (83 loc) · 2.27 KB
/
vite.config.ts
File metadata and controls
85 lines (83 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import path from 'node:path'
import vue from '@vitejs/plugin-vue'
import simpleGit from 'simple-git'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import { HeadlessUiResolver } from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import { VueRouterAutoImports } from 'unplugin-vue-router'
import VueRouter from 'unplugin-vue-router/vite'
import { defineConfig } from 'vite'
import Layouts from 'vite-plugin-vue-layouts'
import { version } from './package.json'
// https://vite.dev/config/
export default defineConfig(async ({ mode }) => {
const data = {
mode,
isDev: mode !== 'production',
isProd: mode === 'production',
version,
gitLatest: (await simpleGit().log({ maxCount: 1 })).latest || { hash: 'unknown', date: new Date().toISOString() },
date: new Date(),
}
return defineConfig({
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
},
},
define: {
'__DEV__': JSON.stringify(mode !== 'production'),
'import.meta.env.VITE_APP_VERSION': JSON.stringify(version),
'import.meta.env.VITE_COMMIT_HASH': JSON.stringify(data.gitLatest.hash),
'import.meta.env.VITE_APP_BUILDTIME': JSON.stringify(data.date.toISOString()),
},
plugins: [
VueRouter({}),
vue(),
UnoCSS(),
AutoImport({
imports: [
'vue',
'@vueuse/core',
VueRouterAutoImports,
{
'@vue/apollo-composable': [
'useQuery',
'useLazyQuery',
],
'graphql-tag': [
'gql',
],
'nprogress': [
['default', 'NProgress'],
],
'vue-toastification': ['useToast'],
},
{
from: '@/graphql',
imports: ['Query', 'schema'],
type: true,
},
],
dts: true,
dirs: [
'src/apis/**',
'src/composables/**',
'src/utils/**',
'src/stores',
],
vueTemplate: true,
eslintrc: {
enabled: true,
},
}),
Components({
resolvers: [
HeadlessUiResolver({ prefix: 'H' }),
],
}),
Layouts(),
],
})
})