diff --git a/package.json b/package.json index 6d5b752..335aa65 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "_ci-releaseElectronApp": "cd src-electron && npm run build:appimage && cd ..", "_ci-update-phcode-build": "node src-build/update-phcode-build.js", "serve": "node src-build/serveForPlatform.js", + "serve:dist": "node src-build/serveForPlatform.js --dist", "serve:tauri": "node src-build/serveForPlatform.js tauri", "serve:electron": "node src-build/serveForPlatform.js electron", "postinstall": "node ./src-build/downloadNodeBinary.js && node ./src-build/setupElectron.js", @@ -49,4 +50,4 @@ "branch": "tauri", "commit": "deb309997d34383ffc01c623902537ad095c79f3" } -} \ No newline at end of file +} diff --git a/src-build/serveForPlatform.js b/src-build/serveForPlatform.js index 8dffc93..6616c7d 100644 --- a/src-build/serveForPlatform.js +++ b/src-build/serveForPlatform.js @@ -32,14 +32,15 @@ function createTauriDevConfig() { } // Get target from CLI arg, or detect from platform -const cliArg = process.argv[2]; +const cliArgs = process.argv.slice(2).filter(arg => !arg.startsWith('--')); +const cliArg = cliArgs[0]; let target; if (cliArg === 'tauri' || cliArg === 'electron') { target = cliArg; } else if (cliArg) { console.error(`Unknown target: ${cliArg}`); - console.error('Usage: npm run serve [tauri|electron]'); + console.error('Usage: npm run serve [tauri|electron] [--dist]'); process.exit(1); } else { // Auto-detect: Linux uses Electron, Windows/Mac use Tauri @@ -65,6 +66,13 @@ if (target !== recommendedTarget) { console.warn(y(`╚${border}╝\n`)); } +const serveDist = process.argv.includes('--dist'); + +if (serveDist && target === "tauri") { + console.error('Error: --dist flag is only supported with Electron, not Tauri.'); + process.exit(1); +} + console.log(`Platform: ${platform}, target: ${target}`); // Run platform-specific command @@ -95,6 +103,13 @@ if (target === "tauri") { const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')); const effectiveConfig = JSON.parse(readFileSync(configDest, 'utf8')); effectiveConfig.version = packageJson.version; + + // When --dist flag is passed, serve from ../phoenix/dist instead of ../phoenix/src + if (serveDist) { + console.log('Serving from ../phoenix/dist (--dist mode)'); + effectiveConfig.phoenixLoadURL = effectiveConfig.phoenixLoadURL.replace('/src/', '/dist/'); + } + writeFileSync(configDest, JSON.stringify(effectiveConfig, null, 2)); console.log('Starting Electron...');