fix(ui): generate Monaco public assets in dev

This commit is contained in:
Shantur Rathore
2026-02-10 00:05:12 +00:00
parent 01ab2f2794
commit 8495dcd021

View File

@@ -7,13 +7,7 @@ import { resolve } from "path"
const uiPackageJson = JSON.parse(fs.readFileSync(resolve(__dirname, "package.json"), "utf-8")) as { version?: string } const uiPackageJson = JSON.parse(fs.readFileSync(resolve(__dirname, "package.json"), "utf-8")) as { version?: string }
const uiVersion = uiPackageJson.version ?? "0.0.0" const uiVersion = uiPackageJson.version ?? "0.0.0"
export default defineConfig({ function copyMonacoPublicAssets(opts: { warn: (message: string) => void }) {
root: "./src/renderer",
plugins: [
solid(),
{
name: "prepare-monaco-public-assets",
buildStart() {
const publicDir = resolve(__dirname, "src/renderer/public") const publicDir = resolve(__dirname, "src/renderer/public")
const destRoot = resolve(publicDir, "monaco/vs") const destRoot = resolve(publicDir, "monaco/vs")
@@ -23,7 +17,7 @@ export default defineConfig({
] ]
const sourceRoot = candidates.find((p) => fs.existsSync(resolve(p, "loader.js"))) const sourceRoot = candidates.find((p) => fs.existsSync(resolve(p, "loader.js")))
if (!sourceRoot) { if (!sourceRoot) {
this.warn("Monaco source directory not found; skipping copy") opts.warn("Monaco source directory not found; skipping copy")
return return
} }
@@ -56,6 +50,7 @@ export default defineConfig({
copyRecursive(src, resolve(destRoot, dir)) copyRecursive(src, resolve(destRoot, dir))
} }
} }
// loader.js is required. // loader.js is required.
copyRecursive(resolve(sourceRoot, "loader.js"), resolve(destRoot, "loader.js")) copyRecursive(resolve(sourceRoot, "loader.js"), resolve(destRoot, "loader.js"))
@@ -84,6 +79,21 @@ export default defineConfig({
if (fs.existsSync(underscoreContribution)) { if (fs.existsSync(underscoreContribution)) {
copyRecursive(underscoreContribution, resolve(destRoot, "basic-languages", "_.contribution.js")) copyRecursive(underscoreContribution, resolve(destRoot, "basic-languages", "_.contribution.js"))
} }
}
export default defineConfig({
root: "./src/renderer",
plugins: [
solid(),
{
name: "prepare-monaco-public-assets",
// Ensure Monaco's AMD assets exist in `root/public` for both dev server and builds.
// These files are gitignored and generated on demand.
configureServer(server) {
copyMonacoPublicAssets({ warn: (msg) => server.config.logger.warn(msg) })
},
buildStart() {
copyMonacoPublicAssets({ warn: (msg) => this.warn(msg) })
}, },
}, },
{ {