30 lines
1.1 KiB
JavaScript
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");
|