Files
next-ai-draw-io/scripts/afterPack.cjs
T

44 lines
1.5 KiB
JavaScript
Raw Normal View History

/**
* electron-builder afterPack hook
* Copies node_modules to the standalone directory in the packaged app
*/
const { cpSync, existsSync } = require("fs")
const path = require("path")
2025-12-22 10:39:28 +09:00
module.exports = async (context) => {
const appOutDir = context.appOutDir
const resourcesDir = path.join(
appOutDir,
context.packager.platform.name === "mac"
? `${context.packager.appInfo.productFilename}.app/Contents/Resources`
2025-12-22 10:39:28 +09:00
: "resources",
)
const standaloneDir = path.join(resourcesDir, "standalone")
const sourceNodeModules = path.join(
context.packager.projectDir,
"electron-standalone",
2025-12-22 10:39:28 +09:00
"node_modules",
)
const targetNodeModules = path.join(standaloneDir, "node_modules")
console.log(`[afterPack] Copying node_modules to ${targetNodeModules}`)
if (existsSync(sourceNodeModules) && existsSync(standaloneDir)) {
cpSync(sourceNodeModules, targetNodeModules, { recursive: true })
console.log("[afterPack] node_modules copied successfully")
} else {
console.error("[afterPack] Source or target directory not found!")
2025-12-22 10:39:28 +09:00
console.error(
` Source: ${sourceNodeModules} exists: ${existsSync(sourceNodeModules)}`,
)
console.error(
` Target dir: ${standaloneDir} exists: ${existsSync(standaloneDir)}`,
)
throw new Error(
"[afterPack] Failed: Required directories not found. " +
2025-12-22 10:39:28 +09:00
"Ensure 'npm run electron:prepare' was run before building.",
)
}
}