52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
|
|
import fs from 'node:fs';
|
||
|
|
import path from 'node:path';
|
||
|
|
|
||
|
|
function walk(dir, acc = []) {
|
||
|
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
||
|
|
const full = path.join(dir, entry.name);
|
||
|
|
if (entry.isDirectory() && entry.name !== 'node_modules') {
|
||
|
|
walk(full, acc);
|
||
|
|
} else if (/\.(ts|vue)$/.test(entry.name)) {
|
||
|
|
acc.push(full);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return acc;
|
||
|
|
}
|
||
|
|
|
||
|
|
const srcFiles = walk('src');
|
||
|
|
const badPlaceholder = [];
|
||
|
|
const zhLocales = srcFiles.filter((f) => f.includes(`${path.sep}locale${path.sep}zh-CN.ts`));
|
||
|
|
|
||
|
|
for (const file of srcFiles) {
|
||
|
|
const text = fs.readFileSync(file, 'utf8');
|
||
|
|
if (text.includes("'???'") || /'(\?\?[^']*)'/.test(text)) {
|
||
|
|
badPlaceholder.push(file);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
let zhOk = 0;
|
||
|
|
for (const file of zhLocales) {
|
||
|
|
if (/[\u4e00-\u9fff]/.test(fs.readFileSync(file, 'utf8'))) zhOk += 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
let mockInDist = false;
|
||
|
|
if (fs.existsSync('dist/assets')) {
|
||
|
|
for (const name of fs.readdirSync('dist/assets')) {
|
||
|
|
if (!name.endsWith('.js')) continue;
|
||
|
|
const chunk = fs.readFileSync(path.join('dist/assets', name), 'utf8');
|
||
|
|
if (chunk.includes('mockjs') || chunk.includes('Mock.mock')) {
|
||
|
|
mockInDist = true;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log(JSON.stringify({
|
||
|
|
badPlaceholder: badPlaceholder.length,
|
||
|
|
zhLocales: `${zhOk}/${zhLocales.length}`,
|
||
|
|
mockInDist,
|
||
|
|
hasGit: fs.existsSync('.env.development') && fs.readFileSync('.env.development', 'utf8').includes('VITE_API_BASE_URL=http'),
|
||
|
|
settingsHttp: fs.readFileSync('src/locale/zh-CN/settings.ts', 'utf8').includes('http.logout.title'),
|
||
|
|
rootMenu: fs.readFileSync('src/locale/zh-CN.ts', 'utf8').includes('仪表盘'),
|
||
|
|
}, null, 2));
|