- C1: 4 个 CLI 脚本守卫加 process.argv[1] 空值短路,避免动态 import 时 pathToFileURL(undefined) 崩溃 - I1: check-cocos-version CLI 在宿主 creator.version 为 null 时报错 exit 1,避免 CI 虚假 OK - M1: scaffold 测试收紧 UUID 正则 - 新增 cli-entry 测试覆盖动态 import 场景 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|
import { join } from 'node:path';
|
|
import { mkdirSync, existsSync } from 'node:fs';
|
|
import { pathToFileURL } from 'node:url';
|
|
import { GAMES_DIR, FRAMEWORK_SRC, listGameProjects } from './lib/paths.mjs';
|
|
import { ensureJunction } from './lib/junction.mjs';
|
|
|
|
// 为 gamesDir 下每个工程在 assets/framework 建指向 frameworkSrc 的 junction
|
|
export function setupLinks(gamesDir, frameworkSrc) {
|
|
const results = [];
|
|
for (const proj of listGameProjects(gamesDir)) {
|
|
const assetsDir = join(proj, 'assets');
|
|
if (!existsSync(assetsDir)) mkdirSync(assetsDir, { recursive: true });
|
|
const link = join(assetsDir, 'framework');
|
|
const status = ensureJunction(link, frameworkSrc);
|
|
results.push({ project: proj, link, status });
|
|
}
|
|
return results;
|
|
}
|
|
|
|
// CLI 入口
|
|
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
|
|
const results = setupLinks(GAMES_DIR, FRAMEWORK_SRC);
|
|
if (results.length === 0) {
|
|
console.log('games/ 下暂无子游戏工程。');
|
|
}
|
|
for (const r of results) {
|
|
console.log(`[${r.status}] ${r.link}`);
|
|
}
|
|
}
|