From aa982b30712083a1f26b8b92abf219271ef735a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 15 Nov 2025 10:58:33 +0800 Subject: [PATCH] Improve version folder selection in loadNapCat.cjs Enhanced logic to handle multiple or missing version folders by selecting the most recently modified folder if more than one exists, and providing clearer error messages. Also updated .vscode/settings.json to add source map path overrides for additional packages. --- .vscode/settings.json | 8 ++++++-- packages/napcat-develop/loadNapCat.cjs | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a0a29010..defe49b1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,12 @@ { "debug.node.sourceMapPathOverrides": { - "../../napcat-onebot/*": "${workspaceFolder}/packages/napcat-onebot/*", - "../../napcat-core/*": "${workspaceFolder}/packages/napcat-core/*", "../../napcat-common/*": "${workspaceFolder}/packages/napcat-common/*", + "../../napcat-core/*": "${workspaceFolder}/packages/napcat-core/*", + "../../napcat-image-size/*": "${workspaceFolder}/packages/napcat-image-size/*", + "../../napcat-shell/*": "${workspaceFolder}/packages/napcat-shell/*", + "../../napcat-framework/*": "${workspaceFolder}/packages/napcat-framework/*", + "../../napcat-protobuf/*": "${workspaceFolder}/packages/napcat-protobuf/*", + "../../napcat-onebot/*": "${workspaceFolder}/packages/napcat-onebot/*", "../../napcat-webui-backend/*": "${workspaceFolder}/packages/napcat-webui-backend/*", "../../napcat-pty/*": "${workspaceFolder}/packages/napcat-pty/*" } diff --git a/packages/napcat-develop/loadNapCat.cjs b/packages/napcat-develop/loadNapCat.cjs index e866999d..88c60d02 100644 --- a/packages/napcat-develop/loadNapCat.cjs +++ b/packages/napcat-develop/loadNapCat.cjs @@ -12,12 +12,25 @@ if (!mainPath) { const versionsDir = path.join(mainPath, 'versions'); console.log(`Looking for version folders in: ${versionsDir}`); const versionFolders = fs.readdirSync(versionsDir).filter(f => fs.statSync(path.join(versionsDir, f)).isDirectory()); -if (versionFolders.length !== 1) { - console.error('versions 文件夹下必须且只能有一个版本目录'); +let selectedFolder; +if (versionFolders.length === 0) { + console.error('versions 文件夹下没有找到版本目录'); process.exit(1); +} else if (versionFolders.length === 1) { + selectedFolder = versionFolders[0]; +} else { + // 获取时间最新的文件夹 + const stats = versionFolders.map(folder => { + const folderPath = path.join(versionsDir, folder); + return { folder, mtime: fs.statSync(folderPath).mtime }; + }); + stats.sort((a, b) => b.mtime - a.mtime); + selectedFolder = stats[0].folder; + console.log(`多个版本文件夹存在,选择最新的: ${selectedFolder}`); } -const BASE_DIR = path.join(versionsDir, versionFolders[0], 'resources', 'app'); +const BASE_DIR = path.join(versionsDir, selectedFolder, 'resources', 'app'); +console.log(`BASE_DIR: ${BASE_DIR}`); const TARGET_DIR = path.join(__dirname, 'dist'); const QQNT_FILE = path.join(__dirname, 'QQNT.dll'); const NAPCAT_MJS_PATH = path.join(__dirname, '..', 'napcat-shell','dist', 'napcat.mjs');