41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
// 把 monaco-editor 自带的预构建 min/vs 复制到 public/monaco/vs,
|
|
// 让 @monaco-editor/react 的 loader 在离线环境下从同源 /monaco/vs 加载,
|
|
// 不再依赖 jsDelivr CDN。postinstall 时跑一次即可,产物不进 git(被 .gitignore
|
|
// 忽略),由 pnpm install 重新生成。
|
|
|
|
import { cp, mkdir, rm, stat } from "node:fs/promises";
|
|
import { dirname, join, resolve } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
const frontendRoot = resolve(here, "..");
|
|
|
|
const src = resolve(
|
|
frontendRoot,
|
|
"node_modules/monaco-editor/min/vs",
|
|
);
|
|
const dest = resolve(frontendRoot, "public/monaco/vs");
|
|
|
|
async function exists(p) {
|
|
try {
|
|
await stat(p);
|
|
return true;
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (!(await exists(src))) {
|
|
console.error(
|
|
`[copy-monaco] 源目录不存在: ${src}\n` +
|
|
`请确认 frontend/package.json 已声明 monaco-editor 依赖并已 pnpm install。`,
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
await mkdir(dirname(dest), { recursive: true });
|
|
await rm(dest, { recursive: true, force: true });
|
|
await cp(src, dest, { recursive: true });
|
|
|
|
console.log(`[copy-monaco] ${src} -> ${dest}`);
|