-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.js
More file actions
60 lines (55 loc) Β· 1.58 KB
/
vite.config.js
File metadata and controls
60 lines (55 loc) Β· 1.58 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
import { defineConfig } from 'vite'
import { resolve } from 'path'
import { execSync } from 'child_process'
import fs from 'fs'
// Plugin to generate version.json after build
function generateVersionPlugin() {
return {
name: 'generate-version',
closeBundle() {
// Generate version information
const versionInfo = {
timestamp: Date.now()
};
// Write version.json to dist
fs.writeFileSync('dist/version.json', JSON.stringify(versionInfo, null, 2));
console.log('β
Generated version.json:', versionInfo);
}
}
}
export default defineConfig(({ mode }) => {
const isWidget = process.env.BUILD_TARGET === 'widget';
const isLoader = process.env.BUILD_TARGET === 'loader';
// Default to widget build if no target specified
const buildWidget = !isLoader;
return {
build: {
lib: buildWidget ? {
entry: resolve(__dirname, 'src/main.js'),
name: 'Buzzwald',
fileName: () => 'buzzwald-widget.js',
formats: ['iife']
} : undefined,
rollupOptions: buildWidget ? {
output: {
name: 'Buzzwald',
inlineDynamicImports: true
}
} : {
// Loader build configuration
input: resolve(__dirname, 'src/loader.js'),
output: {
dir: 'dist',
entryFileNames: 'buzzwald.js',
format: 'iife',
name: 'BuzzwaldLoader'
}
},
emptyOutDir: false // Don't clear dist when building loader
},
server: {
open: '/test/test.html'
},
plugins: [generateVersionPlugin()]
};
})