-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathvite.config.ts
More file actions
64 lines (61 loc) · 1.54 KB
/
Copy pathvite.config.ts
File metadata and controls
64 lines (61 loc) · 1.54 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
import { defineConfig } from 'vitest/config';
import tailwindcss from '@tailwindcss/vite';
import { sveltekit } from '@sveltejs/kit/vite';
import basicSsl from '@vitejs/plugin-basic-ssl';
import { copyFileSync, existsSync, mkdirSync } from 'fs';
function copyStaticAssets() {
const assets = ['static/manifest.json', 'static/service-worker.js'];
const outDir = 'dist';
if (!existsSync(outDir)) mkdirSync(outDir);
for (const asset of assets) {
const dest = `${outDir}/${asset.split('/').pop()}`;
if (existsSync(asset)) copyFileSync(asset, dest);
}
}
export default defineConfig({
plugins: [basicSsl(), tailwindcss(), sveltekit()],
server: {
host: true // Allow access from local network
},
build: {
chunkSizeWarningLimit: 1024,
rollupOptions: {
// Ensure static assets are copied after build
plugins: [
{
name: 'copy-static-assets',
writeBundle: copyStaticAssets
}
]
}
},
test: {
expect: { requireAssertions: true },
projects: [
{
extends: './vite.config.ts',
test: {
name: 'client',
environment: 'browser',
browser: {
enabled: true,
provider: 'playwright',
instances: [{ browser: 'chromium' }]
},
include: ['src/**/*.svelte.{test,spec}.{js,ts}'],
exclude: ['src/lib/server/**'],
setupFiles: ['./vitest-setup-client.ts']
}
},
{
extends: './vite.config.ts',
test: {
name: 'server',
environment: 'node',
include: ['src/**/*.{test,spec}.{js,ts}'],
exclude: ['src/**/*.svelte.{test,spec}.{js,ts}']
}
}
]
}
});