-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
55 lines (51 loc) · 1.1 KB
/
vite.config.ts
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
import { defineConfig } from 'vite'
import type { Page }from 'vite-plugin-virtual-mpa';
import { createMpaPlugin } from 'vite-plugin-virtual-mpa'
import fs from 'fs';
function genPages() {
const files = fs.readdirSync('src/scene').filter(file => /.+\.ts$/.test(file)).map(js_file => js_file.replace('.ts',''));
const pages: Page[] = [{
name: "index",
template: 'static/_index.html',
data: {
files
}
},
... files.map(file => ({
name: file,
template: `static/_template.html` as any,
data: {
title: file,
scene: file
}
}))];
return pages;
}
const mapPlugin = createMpaPlugin({
pages: genPages(),
watchOptions: {
events: ['add', 'unlink'],
handler: (ctx) => {
ctx.reloadPages(genPages());
}
}
});
const dir = 'basic-examples';
export default defineConfig({
build: {
rollupOptions: {
output: {
dir: '../.git-pages/'+dir+'/'
},
external: ['static']
}
},
base: '/babylonjs-jolt-physics-plugin/'+dir,
plugins: [
mapPlugin as any
],
server: {
host: 'localhost',
port: 8080
}
})