#!/usr/bin/env node import { pathToFileURL } from 'node:url'; import { HOST_PROJECT, GAMES_DIR, readCreatorVersion, listGameProjects } from './lib/paths.mjs'; // 比对各子游戏工程与宿主工程的 creator.version export function checkVersions(hostProject, gamesDir) { const expected = readCreatorVersion(hostProject); const mismatches = []; for (const proj of listGameProjects(gamesDir)) { const version = readCreatorVersion(proj); if (version !== expected) { mismatches.push({ project: proj, version, expected }); } } return { expected, mismatches }; } // CLI 入口:有不一致则退出码 1 if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { const { expected, mismatches } = checkVersions(HOST_PROJECT, GAMES_DIR); if (expected == null) { console.error('错误: 宿主工程缺少 creator.version'); process.exit(1); } console.log(`宿主 Cocos 版本: ${expected}`); if (mismatches.length === 0) { console.log('OK: 所有子游戏工程版本一致。'); process.exit(0); } console.error('版本不一致:'); for (const m of mismatches) { console.error(` ${m.project}: ${m.version}(应为 ${m.expected})`); } process.exit(1); }