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.
This commit is contained in:
手瓜一十雪 2025-11-15 10:58:33 +08:00
parent 8e71dec63a
commit aa982b3071
2 changed files with 22 additions and 5 deletions

View File

@ -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/*"
}

View File

@ -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');