Files
fquiz/web/scripts/sync-cesium-assets.mjs
2026-04-26 00:14:25 +08:00

30 lines
1.1 KiB
JavaScript

import { cpSync, existsSync, mkdirSync, rmSync } from "node:fs";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
const scriptDir = dirname(fileURLToPath(import.meta.url));
const projectRoot = resolve(scriptDir, "..");
const targetRoot = resolve(projectRoot, "public/cesium");
const requiredFolders = ["Assets", "ThirdParty", "Workers", "Widgets"];
const cesiumCandidates = [
resolve(projectRoot, "node_modules/cesium/Build/Cesium"),
resolve(projectRoot, "../node_modules/cesium/Build/Cesium"),
];
const cesiumBuildRoot = cesiumCandidates.find((candidate) => existsSync(candidate)) ?? "";
if (!cesiumBuildRoot) {
console.warn("[cesium-sync] skip: Cesium build directory not found");
process.exit(0);
}
rmSync(targetRoot, { recursive: true, force: true });
mkdirSync(targetRoot, { recursive: true });
for (const folderName of requiredFolders) {
const source = resolve(cesiumBuildRoot, folderName);
const target = resolve(targetRoot, folderName);
cpSync(source, target, { recursive: true });
}
console.info("[cesium-sync] synced Cesium static assets to public/cesium");