@xfilecom/xframe 0.1.29 → 0.1.31
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/bin/xframe.js +67 -1
- package/defaults.json +2 -2
- package/package.json +1 -1
package/bin/xframe.js
CHANGED
|
@@ -316,6 +316,70 @@ async function collectDatabaseConfig(fromCli, skipDbPrompt, wantDbPullFlag) {
|
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
+
/** drizzle 루트 db:pull 과 Nest 런타임이 backend-core 로드 시 필요 (피어 미설치 시 모듈 누락) */
|
|
320
|
+
const NEST_MICROSERVICES_SPEC = '^10.0.0';
|
|
321
|
+
const REFLECT_METADATA_SPEC = '^0.2.0';
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* 옛 템플릿·캐시된 npx 패키지에도 대응: 루트 devDeps + apps/api deps 에 보강.
|
|
325
|
+
* 이미 있으면 변경 없음.
|
|
326
|
+
*/
|
|
327
|
+
function ensureNestPeerDepsInPackageJsons(targetRoot) {
|
|
328
|
+
let touched = false;
|
|
329
|
+
|
|
330
|
+
const rootPkgPath = path.join(targetRoot, 'package.json');
|
|
331
|
+
if (fs.existsSync(rootPkgPath)) {
|
|
332
|
+
try {
|
|
333
|
+
const pkg = JSON.parse(fs.readFileSync(rootPkgPath, 'utf8'));
|
|
334
|
+
pkg.devDependencies = pkg.devDependencies || {};
|
|
335
|
+
let rootChanged = false;
|
|
336
|
+
if (!pkg.devDependencies['@nestjs/microservices']) {
|
|
337
|
+
pkg.devDependencies['@nestjs/microservices'] = NEST_MICROSERVICES_SPEC;
|
|
338
|
+
rootChanged = true;
|
|
339
|
+
}
|
|
340
|
+
if (!pkg.devDependencies['reflect-metadata']) {
|
|
341
|
+
pkg.devDependencies['reflect-metadata'] = REFLECT_METADATA_SPEC;
|
|
342
|
+
rootChanged = true;
|
|
343
|
+
}
|
|
344
|
+
if (rootChanged) {
|
|
345
|
+
fs.writeFileSync(rootPkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
|
|
346
|
+
touched = true;
|
|
347
|
+
}
|
|
348
|
+
} catch {
|
|
349
|
+
/* ignore */
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
const apiPkgPath = path.join(targetRoot, 'apps', 'api', 'package.json');
|
|
354
|
+
if (fs.existsSync(apiPkgPath)) {
|
|
355
|
+
try {
|
|
356
|
+
const pkg = JSON.parse(fs.readFileSync(apiPkgPath, 'utf8'));
|
|
357
|
+
pkg.dependencies = pkg.dependencies || {};
|
|
358
|
+
let apiChanged = false;
|
|
359
|
+
if (!pkg.dependencies['@nestjs/microservices']) {
|
|
360
|
+
pkg.dependencies['@nestjs/microservices'] = NEST_MICROSERVICES_SPEC;
|
|
361
|
+
apiChanged = true;
|
|
362
|
+
}
|
|
363
|
+
if (!pkg.dependencies['reflect-metadata']) {
|
|
364
|
+
pkg.dependencies['reflect-metadata'] = REFLECT_METADATA_SPEC;
|
|
365
|
+
apiChanged = true;
|
|
366
|
+
}
|
|
367
|
+
if (apiChanged) {
|
|
368
|
+
fs.writeFileSync(apiPkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
|
|
369
|
+
touched = true;
|
|
370
|
+
}
|
|
371
|
+
} catch {
|
|
372
|
+
/* ignore */
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if (touched) {
|
|
377
|
+
console.log(
|
|
378
|
+
'xframe: package.json 에 @nestjs/microservices · reflect-metadata 를 보강했습니다 (db:pull / API).',
|
|
379
|
+
);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
319
383
|
/** yarn 우선, 없거나 실패 시 npm (부모 셸 PATH 그대로 — shell:true 쓰면 sh라 yarn/nvm PATH가 빠지는 경우가 많음) */
|
|
320
384
|
function installDependencies(cwd) {
|
|
321
385
|
const publicNpm = 'https://registry.npmjs.org/';
|
|
@@ -544,6 +608,7 @@ async function main() {
|
|
|
544
608
|
/** 템플릿은 모노레포 기준 front-core 소스를 가리키고, 생성 앱은 설치된 패키지로 바꿉니다. */
|
|
545
609
|
patchWebTsconfigFrontCorePath(targetRoot);
|
|
546
610
|
patchWebViteFrontCoreAlias(targetRoot);
|
|
611
|
+
ensureNestPeerDepsInPackageJsons(targetRoot);
|
|
547
612
|
|
|
548
613
|
console.log(`Created ${packageName} at ${targetRoot}
|
|
549
614
|
|
|
@@ -577,7 +642,8 @@ Next:
|
|
|
577
642
|
cd ${rel}
|
|
578
643
|
yarn dev # 또는 npm run dev
|
|
579
644
|
→ API :3000/health · Client :3001 · Admin :3002
|
|
580
|
-
(설치 생략: npx @xfilecom/xframe <dir> --no-install)
|
|
645
|
+
(설치 생략: npx @xfilecom/xframe <dir> --no-install)
|
|
646
|
+
최신 스캐폴드: npx --yes @xfilecom/xframe@latest <dir>`);
|
|
581
647
|
}
|
|
582
648
|
|
|
583
649
|
main().catch((err) => {
|
package/defaults.json
CHANGED