-
-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathindex.ts
More file actions
60 lines (52 loc) · 1.26 KB
/
index.ts
File metadata and controls
60 lines (52 loc) · 1.26 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 type { Plugin } from 'vite'
import { DevToolsBuild } from './build'
import { DevToolsInjection } from './injection'
import { DevToolsServer } from './server'
export interface DevToolsOptions {
/**
* Include the Vite builtin devtools UI.
*
* @default true
*/
builtinDevTools?: boolean
/**
* Options for building static DevTools output alongside `vite build`.
*/
build?: {
/**
* Automatically build DevTools when running `vite build`.
*
* @default false
*/
withApp?: boolean
/**
* Output directory for the DevTools build (relative to root).
* Defaults to Vite's `build.outDir`.
*/
outDir?: string
}
}
export async function DevTools(options: DevToolsOptions = {}): Promise<Plugin[]> {
const {
builtinDevTools = true,
build,
} = options
const plugins = [
DevToolsInjection(),
DevToolsServer(),
]
if (build?.withApp) {
plugins.push(DevToolsBuild({ outDir: build.outDir }))
}
if (builtinDevTools) {
// eslint-disable-next-line ts/ban-ts-comment
// @ts-ignore ignore the type error
plugins.push(await import('@vitejs/devtools-rolldown').then(m => m.DevToolsRolldownUI()))
}
return plugins
}
export {
DevToolsBuild,
DevToolsInjection,
DevToolsServer,
}