refactor(build): share Monaco public asset copy helper
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
const { execSync } = require("child_process")
|
||||
const { pathToFileURL } = require("url")
|
||||
|
||||
const root = path.resolve(__dirname, "..")
|
||||
const workspaceRoot = path.resolve(root, "..", "..")
|
||||
@@ -10,6 +11,20 @@ const uiRoot = path.resolve(root, "..", "ui")
|
||||
const uiDist = path.resolve(uiRoot, "src", "renderer", "dist")
|
||||
const uiLoadingDest = path.resolve(root, "src-tauri", "resources", "ui-loading")
|
||||
|
||||
async function ensureMonacoAssets() {
|
||||
const helperPath = path.join(uiRoot, "scripts", "monaco-public-assets.js")
|
||||
const helperUrl = pathToFileURL(helperPath).href
|
||||
const { copyMonacoPublicAssets } = await import(helperUrl)
|
||||
copyMonacoPublicAssets({
|
||||
uiRendererRoot: path.join(uiRoot, "src", "renderer"),
|
||||
warn: (msg) => console.warn(`[dev-prep] ${msg}`),
|
||||
sourceRoots: [
|
||||
path.resolve(workspaceRoot, "node_modules", "monaco-editor", "min", "vs"),
|
||||
path.resolve(uiRoot, "node_modules", "monaco-editor", "min", "vs"),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function ensureUiBuild() {
|
||||
const loadingHtml = path.join(uiDist, "loading.html")
|
||||
if (fs.existsSync(loadingHtml)) {
|
||||
@@ -42,5 +57,11 @@ function copyUiLoadingAssets() {
|
||||
console.log(`[dev-prep] copied loader bundle from ${uiDist}`)
|
||||
}
|
||||
|
||||
ensureUiBuild()
|
||||
copyUiLoadingAssets()
|
||||
;(async () => {
|
||||
await ensureMonacoAssets()
|
||||
ensureUiBuild()
|
||||
copyUiLoadingAssets()
|
||||
})().catch((err) => {
|
||||
console.error("[dev-prep] failed:", err)
|
||||
process.exit(1)
|
||||
})
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
const { execSync } = require("child_process")
|
||||
const { pathToFileURL } = require("url")
|
||||
|
||||
const root = path.resolve(__dirname, "..")
|
||||
const workspaceRoot = path.resolve(root, "..", "..")
|
||||
@@ -37,6 +38,20 @@ const braceExpansionPath = path.join(
|
||||
|
||||
const viteBinPath = path.join(uiRoot, "node_modules", ".bin", "vite")
|
||||
|
||||
async function ensureMonacoAssets() {
|
||||
const helperPath = path.join(uiRoot, "scripts", "monaco-public-assets.js")
|
||||
const helperUrl = pathToFileURL(helperPath).href
|
||||
const { copyMonacoPublicAssets } = await import(helperUrl)
|
||||
copyMonacoPublicAssets({
|
||||
uiRendererRoot: path.join(uiRoot, "src", "renderer"),
|
||||
warn: (msg) => console.warn(`[prebuild] ${msg}`),
|
||||
sourceRoots: [
|
||||
path.resolve(workspaceRoot, "node_modules", "monaco-editor", "min", "vs"),
|
||||
path.resolve(uiRoot, "node_modules", "monaco-editor", "min", "vs"),
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function ensureServerBuild() {
|
||||
const distPath = path.join(serverRoot, "dist")
|
||||
const publicPath = path.join(serverRoot, "public")
|
||||
@@ -223,12 +238,18 @@ function copyUiLoadingAssets() {
|
||||
console.log(`[prebuild] prepared UI loading assets from ${uiDist}`)
|
||||
}
|
||||
|
||||
ensureServerDevDependencies()
|
||||
ensureUiDevDependencies()
|
||||
ensureRollupPlatformBinary()
|
||||
ensureServerDependencies()
|
||||
ensureServerBuild()
|
||||
ensureUiBuild()
|
||||
copyServerArtifacts()
|
||||
stripNodeModuleBins()
|
||||
copyUiLoadingAssets()
|
||||
;(async () => {
|
||||
ensureServerDevDependencies()
|
||||
ensureUiDevDependencies()
|
||||
await ensureMonacoAssets()
|
||||
ensureRollupPlatformBinary()
|
||||
ensureServerDependencies()
|
||||
ensureServerBuild()
|
||||
ensureUiBuild()
|
||||
copyServerArtifacts()
|
||||
stripNodeModuleBins()
|
||||
copyUiLoadingAssets()
|
||||
})().catch((err) => {
|
||||
console.error("[prebuild] failed:", err)
|
||||
process.exit(1)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user