-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathvite.main.config.ts
69 lines (62 loc) · 1.7 KB
/
vite.main.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import { sentryVitePlugin } from '@sentry/vite-plugin'
import * as dotenv from 'dotenv'
import type { ConfigEnv, UserConfig } from 'vite'
import { defineConfig, mergeConfig } from 'vite'
import tsconfigPaths from 'vite-tsconfig-paths'
import {
getBuildConfig,
getBuildDefine,
external,
pluginHotRestart,
} from './vite.base.config'
function getDotEnv(defaults: Record<string, string>) {
const env = {
...defaults,
...dotenv.config().parsed,
}
return Object.fromEntries(
Object.entries(env).map(([key, value]) => [key, JSON.stringify(value)])
)
}
// https://vitejs.dev/config
export default defineConfig((env) => {
const forgeEnv = env as ConfigEnv<'build'>
const { forgeConfigSelf } = forgeEnv
const define = {
...getBuildDefine(forgeEnv),
...getDotEnv({
GRAFANA_CLIENT_ID: 'f97d2ab099ee3747cbc2',
K6_API_URL: 'https://api.k6.io/cloud/v6',
GRAFANA_API_URL: 'https://grafana.com/api',
GRAFANA_COM_URL: 'https://grafana.com',
}),
}
const config: UserConfig = {
build: {
lib: {
entry: forgeConfigSelf.entry!,
fileName: () => '[name].js',
formats: ['cjs'],
},
rollupOptions: {
external: external.filter((id) => id !== 'openid-client'),
},
sourcemap: true,
},
plugins: [
tsconfigPaths(),
pluginHotRestart('restart'),
sentryVitePlugin({
authToken: process.env.SENTRY_AUTH_TOKEN,
org: process.env.SENTRY_ORG,
project: process.env.SENTRY_PROJECT,
}),
],
define,
resolve: {
// Load the Node.js entry.
mainFields: ['module', 'jsnext:main', 'jsnext'],
},
}
return mergeConfig(getBuildConfig(forgeEnv), config)
})