|
1 | | -import { defineWorkspace } from 'vitest/config' |
| 1 | +import { defineWorkspace, defineConfig } from 'vitest/config' |
2 | 2 | import { dirname, join } from 'path' |
3 | 3 | import { fileURLToPath } from 'url' |
| 4 | +import vue from '@vitejs/plugin-vue' |
| 5 | +import vuetify from 'vite-plugin-vuetify' |
| 6 | +import { vueI18n } from '@intlify/vite-plugin-vue-i18n' |
| 7 | +import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' |
4 | 8 | const __dirname = dirname(fileURLToPath(import.meta.url)) |
5 | 9 |
|
6 | | -export default defineWorkspace([ |
7 | | - { |
8 | | - extends: './vite.config.ts', |
9 | | - test: { |
10 | | - name: 'src', |
11 | | - environment: 'jsdom', |
12 | | - globals: true, |
13 | | - include: ['src/**/*.{spec,test}.{js,ts}'], |
14 | | - exclude: ['v0/**/*', 'v1/**/*'], |
15 | | - setupFiles: ['./src/simulator/spec/vitestSetup.ts'], |
16 | | - server: { |
17 | | - deps: { |
18 | | - inline: ['vuetify'], |
19 | | - }, |
20 | | - }, |
21 | | - }, |
| 10 | +const createWorkspaceConfig = (version: string) => |
| 11 | + defineConfig({ |
| 12 | + plugins: [ |
| 13 | + vue(), |
| 14 | + vuetify({ autoImport: true }), |
| 15 | + cssInjectedByJsPlugin(), |
| 16 | + vueI18n({ |
| 17 | + include: fileURLToPath( |
| 18 | + new URL( |
| 19 | + version === 'src' |
| 20 | + ? './src/locales/**' |
| 21 | + : `./${version}/src/locales/**`, |
| 22 | + import.meta.url |
| 23 | + ) |
| 24 | + ), |
| 25 | + }) as any, |
| 26 | + ], |
22 | 27 | resolve: { |
23 | 28 | alias: { |
24 | | - '#': join(__dirname, 'src'), |
25 | | - '@': join(__dirname, 'src/components'), |
| 29 | + '#': join( |
| 30 | + __dirname, |
| 31 | + version === 'src' ? 'src' : `${version}/src` |
| 32 | + ), |
| 33 | + '@': join( |
| 34 | + __dirname, |
| 35 | + version === 'src' |
| 36 | + ? 'src/components' |
| 37 | + : `${version}/src/components` |
| 38 | + ), |
26 | 39 | }, |
27 | 40 | }, |
28 | | - }, |
29 | | - { |
30 | | - extends: './vite.config.ts', |
31 | 41 | test: { |
32 | | - name: 'v0', |
| 42 | + name: version, |
33 | 43 | environment: 'jsdom', |
34 | 44 | globals: true, |
35 | | - include: ['v0/src/**/*.{spec,test}.{js,ts}'], |
36 | | - exclude: ['v1/**/*', 'src/**/*'], |
37 | | - setupFiles: ['./v0/src/simulator/spec/vitestSetup.ts'], |
| 45 | + include: [ |
| 46 | + version === 'src' |
| 47 | + ? 'src/**/*.{spec,test}.{js,ts}' |
| 48 | + : `${version}/src/**/*.{spec,test}.{js,ts}`, |
| 49 | + ], |
| 50 | + exclude: |
| 51 | + version === 'src' |
| 52 | + ? ['v0/**/*', 'v1/**/*'] |
| 53 | + : ['src/**/*', version === 'v0' ? 'v1/**/*' : 'v0/**/*'], |
| 54 | + setupFiles: [ |
| 55 | + version === 'src' |
| 56 | + ? './src/simulator/spec/vitestSetup.ts' |
| 57 | + : `./${version}/src/simulator/spec/vitestSetup.ts`, |
| 58 | + ], |
38 | 59 | server: { |
39 | 60 | deps: { |
40 | 61 | inline: ['vuetify'], |
41 | 62 | }, |
42 | 63 | }, |
43 | 64 | }, |
44 | | - resolve: { |
45 | | - alias: { |
46 | | - '#': join(__dirname, 'v0/src'), |
47 | | - '@': join(__dirname, 'v0/src/components'), |
48 | | - }, |
49 | | - }, |
50 | | - }, |
51 | | - { |
52 | | - extends: './vite.config.ts', |
53 | | - test: { |
54 | | - name: 'v1', |
55 | | - environment: 'jsdom', |
56 | | - globals: true, |
57 | | - include: ['v1/src/**/*.{spec,test}.{js,ts}'], |
58 | | - exclude: ['v0/**/*', 'src/**/*'], |
59 | | - setupFiles: ['./v1/src/simulator/spec/vitestSetup.ts'], |
60 | | - server: { |
61 | | - deps: { |
62 | | - inline: ['vuetify'], |
63 | | - }, |
64 | | - }, |
65 | | - }, |
66 | | - resolve: { |
67 | | - alias: { |
68 | | - '#': join(__dirname, 'v1/src'), |
69 | | - '@': join(__dirname, 'v1/src/components'), |
70 | | - }, |
71 | | - }, |
72 | | - }, |
| 65 | + }) |
| 66 | + |
| 67 | +export default defineWorkspace([ |
| 68 | + createWorkspaceConfig('src'), |
| 69 | + createWorkspaceConfig('v0'), |
| 70 | + createWorkspaceConfig('v1'), |
73 | 71 | ]) |
0 commit comments