velxio/frontend/scripts/copy-monaco.mjs

30 lines
1.0 KiB
JavaScript

/**
* Copies monaco-editor's min/vs assets into public/monaco/vs and writes a
* .gitignore so the generated files are never tracked in git.
* Cross-platform replacement for the Unix-only shell one-liner.
*/
import { cpSync, existsSync, mkdirSync, writeFileSync } from 'fs';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const root = join(__dirname, '..');
const src = join(root, 'node_modules', 'monaco-editor', 'min', 'vs');
const dest = join(root, 'public', 'monaco', 'vs');
const monacoDir = join(root, 'public', 'monaco');
if (!existsSync(src)) {
console.error('monaco-editor not found in node_modules — skipping copy.');
process.exit(0);
}
mkdirSync(monacoDir, { recursive: true });
// Write a .gitignore that ignores everything inside public/monaco/
writeFileSync(join(monacoDir, '.gitignore'), '*\n!.gitignore\n');
cpSync(src, dest, { recursive: true });
console.log('monaco-editor assets copied to public/monaco/vs');