项目文件夹

文件
wehub-resource-sync adf0d17497
publish / version_or_publish (push) Has been cancelled
storybook-build / changes (push) Has been cancelled
storybook-build / :storybook-build (push) Has been cancelled
Sync Gradio Skills to Hugging Face / sync-skills (push) Has been cancelled
functional / changes (push) Has been cancelled
functional / build-frontend (push) Has been cancelled
functional / functional-test-SSR=false (push) Has been cancelled
functional / functional-reload (push) Has been cancelled
js / changes (push) Has been cancelled
js / js-test (push) Has been cancelled
docs-build / changes (push) Has been cancelled
docs-build / docs-build (push) Has been cancelled
docs-build / website-build (push) Has been cancelled
functional / functional-test-SSR=true (push) Has been cancelled
hygiene / hygiene-test (push) Has been cancelled
python / changes (push) Has been cancelled
python / build (push) Has been cancelled
python / test-ubuntu-latest-flaky (push) Has been cancelled
python / test-ubuntu-latest-not-flaky (push) Has been cancelled
python / test-windows-latest-flaky (push) Has been cancelled
python / test-windows-latest-not-flaky (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:17:32 +08:00

84 行
1.9 KiB
JavaScript

import { readdirSync, unlinkSync, statSync } from "fs";
import { join, resolve } from "path";
import { fileURLToPath } from "url";
const __dirname = fileURLToPath(new URL(".", import.meta.url));
const buildPath = resolve(__dirname, "../../gradio/templates/node/build");
/**
* Recursively walks a directory and calls the callback for each file
*/
function walkDir(dir, callback) {
const files = readdirSync(dir);
for (const file of files) {
const filePath = join(dir, file);
const stat = statSync(filePath);
if (stat.isDirectory()) {
walkDir(filePath, callback);
} else {
callback(filePath);
}
}
}
/**
* Cleanup build directory to keep only .br files
* - Remove all .gz files
* - Remove all .map files
* - Remove all .js and .css files that have a corresponding .br file
*/
function cleanupBuild() {
console.log("Cleaning up build directory:", buildPath);
let removedGz = 0;
let removedMap = 0;
let removedOriginal = 0;
// First pass: collect all .br files
const brFiles = new Set();
walkDir(buildPath, (filePath) => {
if (filePath.endsWith(".br")) {
// Store the original file path (without .br extension)
brFiles.add(filePath.slice(0, -3));
}
});
// Second pass: remove files
walkDir(buildPath, (filePath) => {
// Remove .gz files
if (filePath.endsWith(".gz")) {
unlinkSync(filePath);
removedGz++;
return;
}
// Remove .map files
if (filePath.endsWith(".map")) {
unlinkSync(filePath);
removedMap++;
return;
}
// Remove original .js and .css files if they have a .br version
if (
(filePath.endsWith(".js") || filePath.endsWith(".css")) &&
brFiles.has(filePath)
) {
unlinkSync(filePath);
removedOriginal++;
return;
}
});
console.log(`Cleanup complete:`);
console.log(` - Removed ${removedGz} .gz files`);
console.log(` - Removed ${removedMap} .map files`);
console.log(
` - Removed ${removedOriginal} original files (kept .br versions)`
);
}
cleanupBuild();