fix(M06-R): 修复静态检查路径兼容

This commit is contained in:
Codex
2026-08-10 19:20:47 +08:00
parent 95cc5ea444
commit da5751f191
5 changed files with 63 additions and 4 deletions
+2 -1
View File
@@ -1,8 +1,9 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs'; import { readFileSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1'); const root = fileURLToPath(new URL('..', import.meta.url));
const read = (path) => readFileSync(join(root, path), 'utf8'); const read = (path) => readFileSync(join(root, path), 'utf8');
const packageJson = JSON.parse(read('admin/package.json')); const packageJson = JSON.parse(read('admin/package.json'));
+2 -1
View File
@@ -1,8 +1,9 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs'; import { readFileSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1'); const root = fileURLToPath(new URL('..', import.meta.url));
const read = (path) => readFileSync(join(root, path), 'utf8'); const read = (path) => readFileSync(join(root, path), 'utf8');
const app = read('admin/src/App.vue'); const app = read('admin/src/App.vue');
+2 -1
View File
@@ -1,8 +1,9 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs'; import { readFileSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1'); const root = fileURLToPath(new URL('..', import.meta.url));
const read = (path) => readFileSync(join(root, path), 'utf8'); const read = (path) => readFileSync(join(root, path), 'utf8');
const appJson = JSON.parse(read('miniapp/app.json')); const appJson = JSON.parse(read('miniapp/app.json'));
+2 -1
View File
@@ -1,8 +1,9 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs'; import { readFileSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1'); const root = fileURLToPath(new URL('..', import.meta.url));
const read = (path) => readFileSync(join(root, path), 'utf8'); const read = (path) => readFileSync(join(root, path), 'utf8');
const appJson = JSON.parse(read('miniapp/app.json')); const appJson = JSON.parse(read('miniapp/app.json'));
+55
View File
@@ -0,0 +1,55 @@
import assert from 'node:assert/strict';
import {
cpSync,
mkdtempSync,
mkdirSync,
rmSync
} from 'node:fs';
import { tmpdir } from 'node:os';
import { basename, join } from 'node:path';
import { spawnSync } from 'node:child_process';
import { fileURLToPath } from 'node:url';
const root = fileURLToPath(new URL('..', import.meta.url));
const temporaryRoot = mkdtempSync(join(tmpdir(), '棋牌 路径回归 '));
const checks = [
'check-miniapp-m08-a.mjs',
'check-miniapp-m08-c.mjs',
'check-admin-m08-b.mjs',
'check-admin-m08-d.mjs'
];
const copySource = (name) => {
const source = join(root, name);
const target = join(temporaryRoot, name);
cpSync(source, target, {
recursive: true,
filter: (entry) => {
const part = basename(entry);
return part !== 'node_modules' && part !== 'dist';
}
});
};
try {
copySource('admin');
copySource('backend');
copySource('database');
copySource('miniapp');
mkdirSync(join(temporaryRoot, 'scripts'));
for (const check of checks) {
cpSync(join(root, 'scripts', check), join(temporaryRoot, 'scripts', check));
const result = spawnSync(process.execPath, [join(temporaryRoot, 'scripts', check)], {
cwd: temporaryRoot,
encoding: 'utf8'
});
assert.equal(
result.status,
0,
`${check} failed in ${temporaryRoot}\n${result.stdout}${result.stderr}`
);
}
console.log(`PASS: four static checks support a Unicode/space repository path (${temporaryRoot}).`);
} finally {
rmSync(temporaryRoot, { recursive: true, force: true });
}