gradio-app--gradio
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
84 行
1.9 KiB
JavaScript
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();
|