@vscode/component-explorer-vite-plugin 0.1.1-1 → 0.1.1-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +10 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +46 -3
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# @vscode/component-explorer-vite-plugin
|
|
2
|
+
|
|
3
|
+
Vite plugin for the [Component Explorer](../../README.md). Discovers fixture files, generates virtual entry modules, and serves the explorer UI during development.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
// vite.config.ts
|
|
9
|
+
import { defineConfig } from 'vite';
|
|
10
|
+
import { componentExplorer } from '@vscode/component-explorer-vite-plugin';
|
|
11
|
+
|
|
12
|
+
export default defineConfig({
|
|
13
|
+
plugins: [
|
|
14
|
+
componentExplorer({
|
|
15
|
+
// options (all optional)
|
|
16
|
+
}),
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Options
|
|
22
|
+
|
|
23
|
+
| Option | Type | Default | Description |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| `include` | `string` | `'./src/**/*.fixture.{ts,tsx}'` | Glob pattern for discovering fixture files. |
|
|
26
|
+
| `route` | `string` | `'/___explorer'` | URL path where the explorer UI is served during development. |
|
|
27
|
+
| `build` | `BuildMode` | `'app-only'` | Controls what gets included in `vite build` output. See [Build Modes](#build-modes). |
|
|
28
|
+
| `outFile` | `string` | `'___explorer.html'` | Output filename for the explorer HTML in production builds. Defaults to `'index.html'` when `build` is `'explorer-only'`. |
|
|
29
|
+
| `logLevel` | `LogLevel` | `'info'` | Logging verbosity: `'silent'`, `'info'`, or `'verbose'`. |
|
|
30
|
+
|
|
31
|
+
### Build Modes
|
|
32
|
+
|
|
33
|
+
The `build` option controls what gets emitted during `vite build` (has no effect on `vite dev`):
|
|
34
|
+
|
|
35
|
+
| Mode | Description |
|
|
36
|
+
|---|---|
|
|
37
|
+
| `'app-only'` | Build the app without the explorer. Suitable for production deployments. |
|
|
38
|
+
| `'all'` | Build both the app and the explorer. Useful for CI/staging environments. |
|
|
39
|
+
| `'explorer-only'` | Build only the explorer, emitting `index.html`. For static hosting of the explorer. |
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
componentExplorer({
|
|
43
|
+
build: 'all', // include explorer in production build
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
To set the build mode via an environment variable:
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import { type BuildMode } from '@vscode/component-explorer-vite-plugin';
|
|
51
|
+
|
|
52
|
+
componentExplorer({
|
|
53
|
+
build: (process.env.EXPLORER_BUILD as BuildMode) ?? undefined,
|
|
54
|
+
})
|
|
55
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { componentExplorer, type ComponentExplorerOptions } from './plugin.js';
|
|
1
|
+
export { componentExplorer, type ComponentExplorerOptions, type BuildMode } from './plugin.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiD,MAAM,aAAa,CAAC"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { Plugin } from 'vite';
|
|
2
2
|
export type LogLevel = 'silent' | 'info' | 'verbose';
|
|
3
|
+
/** Controls what the plugin includes during `vite build`. Has no effect on dev serve. */
|
|
4
|
+
export type BuildMode = 'app-only' | 'all' | 'explorer-only';
|
|
3
5
|
export interface ComponentExplorerOptions {
|
|
4
6
|
/** Glob pattern for fixture files. Default: './src/**\/*.fixture.{ts,tsx}' */
|
|
5
7
|
include?: string;
|
|
6
8
|
/** Explorer route path. Default: '/___explorer' */
|
|
7
9
|
route?: string;
|
|
8
|
-
/** Output filename for the explorer HTML. Default: '___explorer.html' */
|
|
10
|
+
/** Output filename for the explorer HTML. Default: '___explorer.html' (or 'index.html' in explorer-only mode) */
|
|
9
11
|
outFile?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Controls what gets built during `vite build`. Has no effect on dev serve.
|
|
14
|
+
* - `'app-only'` (default): build the app without the explorer
|
|
15
|
+
* - `'all'`: build the app + explorer
|
|
16
|
+
* - `'explorer-only'`: build only the explorer (emits index.html for static hosting)
|
|
17
|
+
*/
|
|
18
|
+
build?: BuildMode;
|
|
10
19
|
/** Log level. Default: 'info' */
|
|
11
20
|
logLevel?: LogLevel;
|
|
12
21
|
}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAanD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,KAAK,GACL,eAAe,CAAC;AAapB,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAiNhF"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
1
2
|
import { glob } from 'tinyglobby';
|
|
2
3
|
import path from 'node:path';
|
|
4
|
+
const _require = createRequire(import.meta.url);
|
|
3
5
|
const VIRTUAL_ENTRY_ID = 'virtual:component-explorer/entry';
|
|
4
6
|
const VIRTUAL_FIXTURES_ID = 'virtual:component-explorer/fixtures';
|
|
5
7
|
const RESOLVED_VIRTUAL_ENTRY_ID = '\0' + VIRTUAL_ENTRY_ID;
|
|
@@ -19,7 +21,8 @@ function normalizeGlobForImportMeta(fixtureGlob) {
|
|
|
19
21
|
export function componentExplorer(options = {}) {
|
|
20
22
|
const fixtureGlob = options.include ?? './src/**/*.fixture.{ts,tsx}';
|
|
21
23
|
const explorerRoute = options.route ?? '/___explorer';
|
|
22
|
-
const
|
|
24
|
+
const buildMode = options.build ?? 'app-only';
|
|
25
|
+
const outFile = options.outFile ?? (buildMode === 'explorer-only' ? 'index.html' : '___explorer.html');
|
|
23
26
|
const logLevel = options.logLevel ?? 'info';
|
|
24
27
|
let config;
|
|
25
28
|
const log = (level, message) => {
|
|
@@ -52,7 +55,19 @@ export function componentExplorer(options = {}) {
|
|
|
52
55
|
}
|
|
53
56
|
},
|
|
54
57
|
config(userConfig) {
|
|
55
|
-
|
|
58
|
+
if (buildMode === 'app-only') {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (buildMode === 'explorer-only') {
|
|
62
|
+
return {
|
|
63
|
+
build: {
|
|
64
|
+
rollupOptions: {
|
|
65
|
+
input: { '___explorer': VIRTUAL_ENTRY_ID },
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// buildMode === 'all': add explorer entry alongside app inputs
|
|
56
71
|
const currentInput = userConfig.build?.rollupOptions?.input;
|
|
57
72
|
let input;
|
|
58
73
|
if (!currentInput) {
|
|
@@ -68,21 +83,45 @@ export function componentExplorer(options = {}) {
|
|
|
68
83
|
else {
|
|
69
84
|
input = { ...currentInput, '___explorer': VIRTUAL_ENTRY_ID };
|
|
70
85
|
}
|
|
86
|
+
// When lib mode is used, lib.fileName controls entryFileNames for ALL
|
|
87
|
+
// entries, causing the explorer chunk to get the same filename as the
|
|
88
|
+
// app entry (e.g. both become "index.js"). Override entryFileNames to
|
|
89
|
+
// give the explorer entry a distinct name while preserving the lib
|
|
90
|
+
// naming for the app entry.
|
|
91
|
+
const lib = userConfig.build?.lib;
|
|
92
|
+
const libFileName = lib && typeof lib === 'object' && !Array.isArray(lib)
|
|
93
|
+
? lib.fileName
|
|
94
|
+
: undefined;
|
|
95
|
+
const outputOverrides = {};
|
|
96
|
+
if (typeof libFileName === 'string') {
|
|
97
|
+
outputOverrides.entryFileNames = (chunkInfo) => {
|
|
98
|
+
if (chunkInfo.name === '___explorer') {
|
|
99
|
+
return '___explorer-[hash].js';
|
|
100
|
+
}
|
|
101
|
+
return `${libFileName}.js`;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
71
104
|
return {
|
|
72
105
|
build: {
|
|
73
106
|
rollupOptions: {
|
|
74
107
|
input,
|
|
108
|
+
output: outputOverrides,
|
|
75
109
|
},
|
|
76
110
|
},
|
|
77
111
|
};
|
|
78
112
|
},
|
|
79
|
-
resolveId(id) {
|
|
113
|
+
resolveId(id, importer) {
|
|
80
114
|
if (id === VIRTUAL_ENTRY_ID) {
|
|
81
115
|
return RESOLVED_VIRTUAL_ENTRY_ID;
|
|
82
116
|
}
|
|
83
117
|
if (id === VIRTUAL_FIXTURES_ID) {
|
|
84
118
|
return RESOLVED_VIRTUAL_FIXTURES_ID;
|
|
85
119
|
}
|
|
120
|
+
// Resolve @vscode/component-explorer from the plugin's own location,
|
|
121
|
+
// so it works regardless of the consumer's node_modules layout.
|
|
122
|
+
if (importer === RESOLVED_VIRTUAL_ENTRY_ID && id.startsWith('@vscode/component-explorer')) {
|
|
123
|
+
return _require.resolve(id);
|
|
124
|
+
}
|
|
86
125
|
},
|
|
87
126
|
load(id) {
|
|
88
127
|
if (id === RESOLVED_VIRTUAL_ENTRY_ID) {
|
|
@@ -93,6 +132,9 @@ export function componentExplorer(options = {}) {
|
|
|
93
132
|
}
|
|
94
133
|
},
|
|
95
134
|
generateBundle(_, bundle) {
|
|
135
|
+
if (buildMode === 'app-only') {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
96
138
|
// Find the explorer entry chunk
|
|
97
139
|
const explorerChunk = Object.values(bundle).find((chunk) => chunk.type === 'chunk' && chunk.name === '___explorer' && chunk.isEntry);
|
|
98
140
|
if (explorerChunk && explorerChunk.type === 'chunk') {
|
|
@@ -161,6 +203,7 @@ export function componentExplorer(options = {}) {
|
|
|
161
203
|
}
|
|
162
204
|
function generateEntryModule() {
|
|
163
205
|
return `
|
|
206
|
+
import '@vscode/component-explorer/styles.css';
|
|
164
207
|
import { ExplorerApp } from '@vscode/component-explorer';
|
|
165
208
|
import { fixtures } from 'virtual:component-explorer/fixtures';
|
|
166
209
|
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAC5D,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAClE,MAAM,yBAAyB,GAAG,IAAI,GAAG,gBAAgB,CAAC;AAC1D,MAAM,4BAA4B,GAAG,IAAI,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|