fix: monaco-editor offline build error
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// 把 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}`);
|
||||
Reference in New Issue
Block a user