@jogak/cli 0.1.0-alpha.5 → 0.1.0-alpha.7
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/dist/cli.js +134 -35
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts +4 -0
- package/dist/commands/build.js +3 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts +4 -0
- package/dist/commands/dev.js +3 -0
- package/dist/commands/dev.js.map +1 -1
- package/dist/config-loader.d.ts +34 -0
- package/dist/config-loader.js +103 -0
- package/dist/config-loader.js.map +1 -0
- package/package.json +8 -5
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { existsSync } from 'node:fs';
|
|
|
4
4
|
import { generateRegistryFile } from '@jogak/core/build';
|
|
5
5
|
import { runDevCommand } from './commands/dev.js';
|
|
6
6
|
import { runBuildCommand } from './commands/build.js';
|
|
7
|
+
import { loadJogakConfig } from './config-loader.js';
|
|
7
8
|
function parseArgs(argv) {
|
|
8
9
|
const positional = [];
|
|
9
10
|
const flags = {};
|
|
@@ -43,30 +44,28 @@ function resolveTsConfig(cwd, v) {
|
|
|
43
44
|
return existsSync(candidate) ? candidate : undefined;
|
|
44
45
|
}
|
|
45
46
|
function parseHostFlag(v) {
|
|
46
|
-
if (v === undefined)
|
|
47
|
-
return 'localhost';
|
|
48
47
|
if (v === true)
|
|
49
48
|
return true; // bare --host → enable
|
|
50
49
|
if (v === 'true')
|
|
51
50
|
return true;
|
|
52
51
|
if (v === 'false')
|
|
53
52
|
return false;
|
|
54
|
-
|
|
53
|
+
if (typeof v === 'string')
|
|
54
|
+
return v;
|
|
55
|
+
return 'localhost';
|
|
55
56
|
}
|
|
56
57
|
function parseOpenFlag(v) {
|
|
57
|
-
if (v === undefined)
|
|
58
|
-
return false;
|
|
59
58
|
if (v === true)
|
|
60
59
|
return true;
|
|
61
60
|
if (v === 'true')
|
|
62
61
|
return true;
|
|
63
62
|
if (v === 'false')
|
|
64
63
|
return false;
|
|
65
|
-
|
|
64
|
+
if (typeof v === 'string')
|
|
65
|
+
return v;
|
|
66
|
+
return false;
|
|
66
67
|
}
|
|
67
68
|
function parsePortFlag(v) {
|
|
68
|
-
if (typeof v !== 'string')
|
|
69
|
-
return 5173;
|
|
70
69
|
const n = Number(v);
|
|
71
70
|
if (!Number.isFinite(n)) {
|
|
72
71
|
process.stderr.write(`[jogak] invalid --port: ${v}\n`);
|
|
@@ -75,8 +74,6 @@ function parsePortFlag(v) {
|
|
|
75
74
|
return n;
|
|
76
75
|
}
|
|
77
76
|
function parseMinifyFlag(v) {
|
|
78
|
-
if (v === undefined)
|
|
79
|
-
return 'esbuild';
|
|
80
77
|
if (v === true)
|
|
81
78
|
return true;
|
|
82
79
|
if (v === 'true')
|
|
@@ -100,11 +97,42 @@ function parseBoolFlag(v, fallback) {
|
|
|
100
97
|
return fallback;
|
|
101
98
|
}
|
|
102
99
|
function parseBaseFlag(v) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
process.stderr.write(`[jogak] warning: --base "${raw}" does not start with '/' or './' — typo?\n`);
|
|
100
|
+
if (!v.startsWith('/') && v !== './' && !v.startsWith('./')) {
|
|
101
|
+
process.stderr.write(`[jogak] warning: --base "${v}" does not start with '/' or './' — typo?\n`);
|
|
106
102
|
}
|
|
107
|
-
return
|
|
103
|
+
return v;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 알파.7: `--global-css` 플래그 normalizer.
|
|
107
|
+
* - 미지정 → fileValue 그대로 (config 또는 undefined)
|
|
108
|
+
* - bare `--global-css` 또는 `--global-css true` → true
|
|
109
|
+
* - `--global-css false` → false
|
|
110
|
+
* - `--global-css <path>` → 명시 경로 (string 1개)
|
|
111
|
+
*/
|
|
112
|
+
function parseGlobalCssFlag(v, fileValue) {
|
|
113
|
+
if (v === undefined)
|
|
114
|
+
return fileValue;
|
|
115
|
+
if (v === true)
|
|
116
|
+
return true;
|
|
117
|
+
if (v === 'true')
|
|
118
|
+
return true;
|
|
119
|
+
if (v === 'false')
|
|
120
|
+
return false;
|
|
121
|
+
return v;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 알파.7: `--preview-isolation` 플래그 normalizer.
|
|
125
|
+
* - 미지정 → fileValue ?? 'none'
|
|
126
|
+
* - 'none'|'shadow'|'iframe' → 그대로
|
|
127
|
+
* - 그 외 → exit 1
|
|
128
|
+
*/
|
|
129
|
+
function parsePreviewIsolationFlag(v, fileValue) {
|
|
130
|
+
if (v === undefined || v === true)
|
|
131
|
+
return fileValue ?? 'none';
|
|
132
|
+
if (v === 'none' || v === 'shadow' || v === 'iframe')
|
|
133
|
+
return v;
|
|
134
|
+
process.stderr.write(`[jogak] invalid --preview-isolation: ${v} (expected none|shadow|iframe)\n`);
|
|
135
|
+
process.exit(1);
|
|
108
136
|
}
|
|
109
137
|
function help() {
|
|
110
138
|
process.stdout.write(`jogak — component showcase
|
|
@@ -115,10 +143,13 @@ USAGE
|
|
|
115
143
|
jogak build [options] 쇼케이스 정적 빌드
|
|
116
144
|
|
|
117
145
|
COMMON OPTIONS
|
|
146
|
+
--config <path> jogak.config 경로 (기본: '<cwd>/jogak.config.{ts,mts,mjs,js,json}' 자동 감지)
|
|
118
147
|
--patterns <glob[,glob...]> 쇼케이스 파일 글롭 (기본: 'src/**/*.jogak.ts,src/**/*.jogak.tsx')
|
|
119
148
|
--cwd <path> 사용자 프로젝트 루트 (기본: process.cwd())
|
|
120
149
|
--ts-config <path> tsconfig 경로 (기본: '<cwd>/tsconfig.json' 자동 감지)
|
|
121
150
|
--code-theme <name> prism 테마 (기본: 'vsDark')
|
|
151
|
+
--global-css [true|false|path] 사용자 globalCss 적용 (알파.7, 기본: jogak.config 또는 false)
|
|
152
|
+
--preview-isolation <mode> preview 격리 (none|shadow|iframe, 알파.7, 기본: 'none')
|
|
122
153
|
--help 도움말 출력
|
|
123
154
|
|
|
124
155
|
generate OPTIONS
|
|
@@ -138,11 +169,17 @@ build OPTIONS
|
|
|
138
169
|
--emit-registry build 도중 .jogak/registry.ts도 생성 (기본: false)
|
|
139
170
|
`);
|
|
140
171
|
}
|
|
141
|
-
async function runGenerate(args) {
|
|
172
|
+
async function runGenerate(args, fileConfig) {
|
|
142
173
|
const cwd = resolve(asString(args.flags['cwd'], process.cwd()));
|
|
143
|
-
const
|
|
174
|
+
const cliPatterns = args.flags['patterns'];
|
|
175
|
+
const patterns = cliPatterns !== undefined
|
|
176
|
+
? parsePatterns(cliPatterns)
|
|
177
|
+
: fileConfig.patterns ?? ['src/**/*.jogak.ts', 'src/**/*.jogak.tsx'];
|
|
144
178
|
const outFile = asString(args.flags['out'], '.jogak/registry.ts');
|
|
145
|
-
const
|
|
179
|
+
const tsConfigFlag = args.flags['ts-config'];
|
|
180
|
+
const tsConfigFilePath = typeof tsConfigFlag === 'string'
|
|
181
|
+
? resolveTsConfig(cwd, tsConfigFlag)
|
|
182
|
+
: fileConfig.tsConfigFilePath ?? resolveTsConfig(cwd, undefined);
|
|
146
183
|
const start = Date.now();
|
|
147
184
|
const result = await generateRegistryFile(tsConfigFilePath !== undefined
|
|
148
185
|
? { patterns, cwd, outFile, tsConfigFilePath }
|
|
@@ -150,37 +187,92 @@ async function runGenerate(args) {
|
|
|
150
187
|
const elapsed = Date.now() - start;
|
|
151
188
|
process.stdout.write(`[jogak] generated ${result.outFile} (${result.fileCount.toString()} files, ${elapsed.toString()}ms)\n`);
|
|
152
189
|
}
|
|
153
|
-
function parseDevArgs(parsed) {
|
|
190
|
+
function parseDevArgs(parsed, fileConfig) {
|
|
154
191
|
const cwd = resolve(asString(parsed.flags['cwd'], process.cwd()));
|
|
155
|
-
const
|
|
156
|
-
const
|
|
192
|
+
const cliPatterns = parsed.flags['patterns'];
|
|
193
|
+
const patterns = cliPatterns !== undefined
|
|
194
|
+
? parsePatterns(cliPatterns)
|
|
195
|
+
: fileConfig.patterns ?? ['src/**/*.jogak.ts', 'src/**/*.jogak.tsx'];
|
|
196
|
+
const tsConfigFlag = parsed.flags['ts-config'];
|
|
197
|
+
const tsConfigFilePath = typeof tsConfigFlag === 'string'
|
|
198
|
+
? resolveTsConfig(cwd, tsConfigFlag)
|
|
199
|
+
: fileConfig.tsConfigFilePath ?? resolveTsConfig(cwd, undefined);
|
|
200
|
+
const portFlag = parsed.flags['port'];
|
|
201
|
+
const port = typeof portFlag === 'string'
|
|
202
|
+
? parsePortFlag(portFlag)
|
|
203
|
+
: fileConfig.port ?? 5173;
|
|
204
|
+
const hostFlag = parsed.flags['host'];
|
|
205
|
+
const host = hostFlag !== undefined
|
|
206
|
+
? parseHostFlag(hostFlag)
|
|
207
|
+
: fileConfig.host ?? 'localhost';
|
|
208
|
+
const openFlag = parsed.flags['open'];
|
|
209
|
+
const open = openFlag !== undefined
|
|
210
|
+
? parseOpenFlag(openFlag)
|
|
211
|
+
: fileConfig.open ?? false;
|
|
212
|
+
const codeThemeFlag = parsed.flags['code-theme'];
|
|
213
|
+
const codeTheme = typeof codeThemeFlag === 'string'
|
|
214
|
+
? codeThemeFlag
|
|
215
|
+
: fileConfig.codeTheme ?? 'vsDark';
|
|
216
|
+
const globalCss = parseGlobalCssFlag(parsed.flags['global-css'], fileConfig.globalCss);
|
|
157
217
|
return {
|
|
158
218
|
patterns,
|
|
159
|
-
port
|
|
160
|
-
host
|
|
161
|
-
open
|
|
219
|
+
port,
|
|
220
|
+
host,
|
|
221
|
+
open,
|
|
162
222
|
cwd,
|
|
163
223
|
tsConfigFilePath,
|
|
164
|
-
codeTheme
|
|
224
|
+
codeTheme,
|
|
165
225
|
noGenerate: parseBoolFlag(parsed.flags['no-generate'], false),
|
|
226
|
+
// exactOptionalPropertyTypes 컨벤션: undefined는 spread로 분기.
|
|
227
|
+
...(globalCss !== undefined ? { globalCss } : {}),
|
|
228
|
+
previewIsolation: parsePreviewIsolationFlag(parsed.flags['preview-isolation'], fileConfig.previewIsolation),
|
|
166
229
|
};
|
|
167
230
|
}
|
|
168
|
-
function parseBuildArgs(parsed) {
|
|
231
|
+
function parseBuildArgs(parsed, fileConfig) {
|
|
169
232
|
const cwd = resolve(asString(parsed.flags['cwd'], process.cwd()));
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
|
|
233
|
+
const cliPatterns = parsed.flags['patterns'];
|
|
234
|
+
const patterns = cliPatterns !== undefined
|
|
235
|
+
? parsePatterns(cliPatterns)
|
|
236
|
+
: fileConfig.patterns ?? ['src/**/*.jogak.ts', 'src/**/*.jogak.tsx'];
|
|
237
|
+
const tsConfigFlag = parsed.flags['ts-config'];
|
|
238
|
+
const tsConfigFilePath = typeof tsConfigFlag === 'string'
|
|
239
|
+
? resolveTsConfig(cwd, tsConfigFlag)
|
|
240
|
+
: fileConfig.tsConfigFilePath ?? resolveTsConfig(cwd, undefined);
|
|
241
|
+
const outDirFlag = parsed.flags['out-dir'];
|
|
242
|
+
const outDirRaw = typeof outDirFlag === 'string'
|
|
243
|
+
? outDirFlag
|
|
244
|
+
: fileConfig.outDir ?? 'jogak-static';
|
|
173
245
|
const outDir = resolve(cwd, outDirRaw);
|
|
246
|
+
const baseFlag = parsed.flags['base'];
|
|
247
|
+
const base = typeof baseFlag === 'string'
|
|
248
|
+
? parseBaseFlag(baseFlag)
|
|
249
|
+
: fileConfig.base ?? './';
|
|
250
|
+
const minifyFlag = parsed.flags['minify'];
|
|
251
|
+
const minify = minifyFlag !== undefined
|
|
252
|
+
? parseMinifyFlag(minifyFlag)
|
|
253
|
+
: fileConfig.minify ?? 'esbuild';
|
|
254
|
+
const sourcemapFlag = parsed.flags['sourcemap'];
|
|
255
|
+
const sourcemap = sourcemapFlag !== undefined
|
|
256
|
+
? parseBoolFlag(sourcemapFlag, false)
|
|
257
|
+
: fileConfig.sourcemap ?? false;
|
|
258
|
+
const codeThemeFlag = parsed.flags['code-theme'];
|
|
259
|
+
const codeTheme = typeof codeThemeFlag === 'string'
|
|
260
|
+
? codeThemeFlag
|
|
261
|
+
: fileConfig.codeTheme ?? 'vsDark';
|
|
262
|
+
const globalCss = parseGlobalCssFlag(parsed.flags['global-css'], fileConfig.globalCss);
|
|
174
263
|
return {
|
|
175
264
|
patterns,
|
|
176
265
|
outDir,
|
|
177
|
-
base
|
|
266
|
+
base,
|
|
178
267
|
cwd,
|
|
179
268
|
tsConfigFilePath,
|
|
180
|
-
codeTheme
|
|
181
|
-
minify
|
|
182
|
-
sourcemap
|
|
269
|
+
codeTheme,
|
|
270
|
+
minify,
|
|
271
|
+
sourcemap,
|
|
183
272
|
emitRegistry: parseBoolFlag(parsed.flags['emit-registry'], false),
|
|
273
|
+
// exactOptionalPropertyTypes 컨벤션: undefined는 spread로 분기.
|
|
274
|
+
...(globalCss !== undefined ? { globalCss } : {}),
|
|
275
|
+
previewIsolation: parsePreviewIsolationFlag(parsed.flags['preview-isolation'], fileConfig.previewIsolation),
|
|
184
276
|
};
|
|
185
277
|
}
|
|
186
278
|
async function main() {
|
|
@@ -192,16 +284,23 @@ async function main() {
|
|
|
192
284
|
const command = argv[0];
|
|
193
285
|
const rest = argv.slice(1);
|
|
194
286
|
const parsed = parseArgs(rest);
|
|
287
|
+
// 알파.7: jogak.config.* 자동 발견 + 로드. CLI 플래그가 override.
|
|
288
|
+
const cwd = resolve(asString(parsed.flags['cwd'], process.cwd()));
|
|
289
|
+
const explicitConfig = typeof parsed.flags['config'] === 'string' ? parsed.flags['config'] : undefined;
|
|
290
|
+
const { path: configPath, config: fileConfig } = await loadJogakConfig(cwd, explicitConfig);
|
|
291
|
+
if (configPath !== undefined) {
|
|
292
|
+
process.stdout.write(`[jogak] config loaded: ${configPath}\n`);
|
|
293
|
+
}
|
|
195
294
|
if (command === 'generate' || command === 'gen') {
|
|
196
|
-
await runGenerate(parsed);
|
|
295
|
+
await runGenerate(parsed, fileConfig);
|
|
197
296
|
return;
|
|
198
297
|
}
|
|
199
298
|
if (command === 'dev') {
|
|
200
|
-
await runDevCommand(parseDevArgs(parsed));
|
|
299
|
+
await runDevCommand(parseDevArgs(parsed, fileConfig));
|
|
201
300
|
return;
|
|
202
301
|
}
|
|
203
302
|
if (command === 'build') {
|
|
204
|
-
await runBuildCommand(parseBuildArgs(parsed));
|
|
303
|
+
await runBuildCommand(parseBuildArgs(parsed, fileConfig));
|
|
205
304
|
return;
|
|
206
305
|
}
|
|
207
306
|
process.stderr.write(`Unknown command: ${command ?? ''}\n\n`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/build.d.ts
CHANGED
|
@@ -14,5 +14,9 @@ export interface BuildCliArgs {
|
|
|
14
14
|
readonly minify: boolean | 'esbuild' | 'terser';
|
|
15
15
|
readonly sourcemap: boolean;
|
|
16
16
|
readonly emitRegistry: boolean;
|
|
17
|
+
/** 알파.7: 사용자 globalCss 옵션 (config 또는 CLI flag로 결정). */
|
|
18
|
+
readonly globalCss?: boolean | string | readonly string[];
|
|
19
|
+
/** 알파.7: preview 격리 모드. */
|
|
20
|
+
readonly previewIsolation: 'none' | 'shadow' | 'iframe';
|
|
17
21
|
}
|
|
18
22
|
export declare function runBuildCommand(args: BuildCliArgs): Promise<void>;
|
package/dist/commands/build.js
CHANGED
|
@@ -33,6 +33,9 @@ export async function runBuildCommand(args) {
|
|
|
33
33
|
...(args.tsConfigFilePath !== undefined
|
|
34
34
|
? { tsConfigFilePath: args.tsConfigFilePath }
|
|
35
35
|
: {}),
|
|
36
|
+
// 알파.7: host 통로로 plugin 옵션 전달.
|
|
37
|
+
...(args.globalCss !== undefined ? { globalCss: args.globalCss } : {}),
|
|
38
|
+
previewIsolation: args.previewIsolation,
|
|
36
39
|
};
|
|
37
40
|
const result = await runHost(buildOptions);
|
|
38
41
|
process.stdout.write(`[jogak] build done — ${result.outDir} (${result.assetCount.toString()} files, ${result.totalBytes.toString()} bytes, ${result.elapsedMs.toString()}ms)\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAKxD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAKxD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAkBxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAkB;IACtD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,oBAAoB,CACxB,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACjC,CAAC,CAAC;gBACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,oBAAoB;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC;YACH,CAAC,CAAC;gBACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,oBAAoB;aAC9B,CACN,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAsB;QACtC,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI,CAAC,GAAG;QAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,+BAA+B;QAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAA;IAED,MAAM,MAAM,GAAgB,MAAM,OAAO,CAAC,YAAY,CAAC,CAAA;IAEvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAC3J,CAAA;AACH,CAAC"}
|
package/dist/commands/dev.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export interface DevCliArgs {
|
|
|
14
14
|
readonly tsConfigFilePath: string | undefined;
|
|
15
15
|
readonly codeTheme: string;
|
|
16
16
|
readonly noGenerate: boolean;
|
|
17
|
+
/** 알파.7: 사용자 globalCss 옵션 (config 또는 CLI flag로 결정). */
|
|
18
|
+
readonly globalCss?: boolean | string | readonly string[];
|
|
19
|
+
/** 알파.7: preview 격리 모드. */
|
|
20
|
+
readonly previewIsolation: 'none' | 'shadow' | 'iframe';
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
23
|
* dev 모드 실행.
|
package/dist/commands/dev.js
CHANGED
|
@@ -52,6 +52,9 @@ export async function runDevCommand(args) {
|
|
|
52
52
|
...(args.tsConfigFilePath !== undefined
|
|
53
53
|
? { tsConfigFilePath: args.tsConfigFilePath }
|
|
54
54
|
: {}),
|
|
55
|
+
// 알파.7: host 통로로 plugin 옵션 전달.
|
|
56
|
+
...(args.globalCss !== undefined ? { globalCss: args.globalCss } : {}),
|
|
57
|
+
previewIsolation: args.previewIsolation,
|
|
55
58
|
};
|
|
56
59
|
const handle = await runHost(devOptions);
|
|
57
60
|
handle.printUrls();
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAKxD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `jogak.config.{ts,mts,mjs,js,json}` loader.
|
|
3
|
+
*
|
|
4
|
+
* spec: `_workspace/01_arch/api-contracts.md` §4 — Vite의 `loadConfigFromFile`
|
|
5
|
+
* (esbuild 기반 transpile + dynamic import)을 그대로 활용해 zero-dep로 ts/mjs/js/
|
|
6
|
+
* json 모두 처리한다.
|
|
7
|
+
*
|
|
8
|
+
* 발견 우선순위 (cwd 기준):
|
|
9
|
+
* 1. `explicitPath` (CLI `--config <path>`) — 절대 또는 cwd 상대
|
|
10
|
+
* 2. cwd/jogak.config.ts
|
|
11
|
+
* 3. cwd/jogak.config.mts
|
|
12
|
+
* 4. cwd/jogak.config.mjs
|
|
13
|
+
* 5. cwd/jogak.config.js
|
|
14
|
+
* 6. cwd/jogak.config.json
|
|
15
|
+
*
|
|
16
|
+
* 미발견 시 `{ path: undefined, config: {} }`를 반환 — CLI 플래그만으로 동작.
|
|
17
|
+
*/
|
|
18
|
+
import type { JogakConfig } from '@jogak/core';
|
|
19
|
+
export interface LoadedJogakConfig {
|
|
20
|
+
/** 로드된 config 절대 경로. 미발견 시 undefined. */
|
|
21
|
+
readonly path: string | undefined;
|
|
22
|
+
/** 사용자 config 객체. 미발견 시 빈 객체 `{}`. */
|
|
23
|
+
readonly config: JogakConfig;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* `jogak.config.{ts,mts,mjs,js,json}`을 자동 발견 + 로드.
|
|
27
|
+
*
|
|
28
|
+
* Vite의 `loadConfigFromFile`을 사용해 esbuild 기반 transpile + dynamic import로
|
|
29
|
+
* ts/mjs를 native 처리. user `defineJogakConfig({ ... })`의 default export를 반환.
|
|
30
|
+
*
|
|
31
|
+
* Loader 실패 시(예: 사용자 config 파일에 syntax error) 예외를 throw — main에서
|
|
32
|
+
* exit code 1로 전파.
|
|
33
|
+
*/
|
|
34
|
+
export declare function loadJogakConfig(cwd: string, explicitPath: string | undefined): Promise<LoadedJogakConfig>;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `jogak.config.{ts,mts,mjs,js,json}` loader.
|
|
3
|
+
*
|
|
4
|
+
* spec: `_workspace/01_arch/api-contracts.md` §4 — Vite의 `loadConfigFromFile`
|
|
5
|
+
* (esbuild 기반 transpile + dynamic import)을 그대로 활용해 zero-dep로 ts/mjs/js/
|
|
6
|
+
* json 모두 처리한다.
|
|
7
|
+
*
|
|
8
|
+
* 발견 우선순위 (cwd 기준):
|
|
9
|
+
* 1. `explicitPath` (CLI `--config <path>`) — 절대 또는 cwd 상대
|
|
10
|
+
* 2. cwd/jogak.config.ts
|
|
11
|
+
* 3. cwd/jogak.config.mts
|
|
12
|
+
* 4. cwd/jogak.config.mjs
|
|
13
|
+
* 5. cwd/jogak.config.js
|
|
14
|
+
* 6. cwd/jogak.config.json
|
|
15
|
+
*
|
|
16
|
+
* 미발견 시 `{ path: undefined, config: {} }`를 반환 — CLI 플래그만으로 동작.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
19
|
+
import { extname, resolve } from 'node:path';
|
|
20
|
+
const CANDIDATE_FILES = [
|
|
21
|
+
'jogak.config.ts',
|
|
22
|
+
'jogak.config.mts',
|
|
23
|
+
'jogak.config.mjs',
|
|
24
|
+
'jogak.config.js',
|
|
25
|
+
'jogak.config.json',
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* `jogak.config.{ts,mts,mjs,js,json}`을 자동 발견 + 로드.
|
|
29
|
+
*
|
|
30
|
+
* Vite의 `loadConfigFromFile`을 사용해 esbuild 기반 transpile + dynamic import로
|
|
31
|
+
* ts/mjs를 native 처리. user `defineJogakConfig({ ... })`의 default export를 반환.
|
|
32
|
+
*
|
|
33
|
+
* Loader 실패 시(예: 사용자 config 파일에 syntax error) 예외를 throw — main에서
|
|
34
|
+
* exit code 1로 전파.
|
|
35
|
+
*/
|
|
36
|
+
export async function loadJogakConfig(cwd, explicitPath) {
|
|
37
|
+
// 1. 명시 path 우선
|
|
38
|
+
let resolvedPath;
|
|
39
|
+
if (explicitPath !== undefined) {
|
|
40
|
+
resolvedPath = resolve(cwd, explicitPath);
|
|
41
|
+
if (!existsSync(resolvedPath)) {
|
|
42
|
+
throw new Error(`[jogak] --config path not found: ${resolvedPath}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// 2. 자동 발견 — 첫 hit만 사용
|
|
47
|
+
for (const candidate of CANDIDATE_FILES) {
|
|
48
|
+
const abs = resolve(cwd, candidate);
|
|
49
|
+
if (existsSync(abs)) {
|
|
50
|
+
resolvedPath = abs;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// 3. 미발견 → 빈 config (CLI 플래그만으로 동작)
|
|
56
|
+
if (resolvedPath === undefined) {
|
|
57
|
+
return { path: undefined, config: {} };
|
|
58
|
+
}
|
|
59
|
+
// 3a. JSON은 vite의 loadConfigFromFile이 처리하지 않으므로 직접 파싱.
|
|
60
|
+
if (extname(resolvedPath) === '.json') {
|
|
61
|
+
const raw = readFileSync(resolvedPath, 'utf8');
|
|
62
|
+
let parsed;
|
|
63
|
+
try {
|
|
64
|
+
parsed = JSON.parse(raw);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
const m = err instanceof Error ? err.message : String(err);
|
|
68
|
+
throw new Error(`[jogak] failed to parse JSON config ${resolvedPath}: ${m}`);
|
|
69
|
+
}
|
|
70
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
71
|
+
throw new Error(`[jogak] config file ${resolvedPath} default export is not an object`);
|
|
72
|
+
}
|
|
73
|
+
return { path: resolvedPath, config: parsed };
|
|
74
|
+
}
|
|
75
|
+
// 3b. ts/mts/mjs/js — Vite의 loadConfigFromFile (esbuild + dynamic import).
|
|
76
|
+
// ConfigEnv는 jogak 명령에 따라 다르게 줘도 되지만, 본 함수는 vite UserConfig가
|
|
77
|
+
// 아닌 JogakConfig 형태로 export하므로 ConfigEnv를 사용자가 분기에 사용할 가능성
|
|
78
|
+
// 거의 없음 — vite signature 충족용으로 'build' 고정.
|
|
79
|
+
const vite = await import('vite');
|
|
80
|
+
let result;
|
|
81
|
+
try {
|
|
82
|
+
result = await vite.loadConfigFromFile({ command: 'build', mode: 'production' }, resolvedPath, cwd);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
// vite는 non-object default export 등을 자체 메시지로 throw — 메시지를 jogak
|
|
86
|
+
// prefix로 감싸 상위에서 일관 처리하게 한다.
|
|
87
|
+
const m = err instanceof Error ? err.message : String(err);
|
|
88
|
+
throw new Error(`[jogak] failed to load config ${resolvedPath}: ${m}`);
|
|
89
|
+
}
|
|
90
|
+
if (result === null) {
|
|
91
|
+
// existsSync로 위에서 검증했는데 vite가 null을 반환 — vite 측 로직 변경 시
|
|
92
|
+
// safe fallback. 빈 config 반환.
|
|
93
|
+
return { path: resolvedPath, config: {} };
|
|
94
|
+
}
|
|
95
|
+
// vite는 result.config를 UserConfig로 cast하지만, 실제로는 사용자 default
|
|
96
|
+
// export 객체가 그대로 전달됨. JogakConfig로 cast.
|
|
97
|
+
const rawConfig = result.config;
|
|
98
|
+
if (typeof rawConfig !== 'object' || rawConfig === null) {
|
|
99
|
+
throw new Error(`[jogak] config file ${resolvedPath} default export is not an object`);
|
|
100
|
+
}
|
|
101
|
+
return { path: resolvedPath, config: rawConfig };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jogak/cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.7",
|
|
4
4
|
"description": "jogak dev / build / generate — CLI for the Jogak component showcase.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jogak",
|
|
@@ -43,15 +43,18 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"vite": "^6.0.0",
|
|
45
45
|
"@vitejs/plugin-react": "^4.3.0",
|
|
46
|
-
"@jogak/
|
|
47
|
-
"@jogak/
|
|
46
|
+
"@jogak/core": "0.1.0-alpha.7",
|
|
47
|
+
"@jogak/ui": "0.1.0-alpha.7"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^20.14.0",
|
|
51
|
-
"typescript": "^5.5.0"
|
|
51
|
+
"typescript": "^5.5.0",
|
|
52
|
+
"vitest": "^2.0.0"
|
|
52
53
|
},
|
|
53
54
|
"scripts": {
|
|
54
55
|
"build": "tsc -p tsconfig.json",
|
|
55
|
-
"typecheck": "tsc --noEmit"
|
|
56
|
+
"typecheck": "tsc --noEmit",
|
|
57
|
+
"test": "vitest run",
|
|
58
|
+
"test:watch": "vitest"
|
|
56
59
|
}
|
|
57
60
|
}
|