77 lines
2.8 KiB
PowerShell
77 lines
2.8 KiB
PowerShell
# Build script for Electron (Windows PowerShell)
|
|
# This enables static export for Electron
|
|
# Temporarily moves API routes out of the way during build
|
|
|
|
$apiPath = "src\app\api"
|
|
$apiBackupPath = "src\app\_api_backup"
|
|
|
|
# Check if API folder exists
|
|
if (Test-Path $apiPath) {
|
|
Write-Host "Temporarily moving API routes out of the way..." -ForegroundColor Yellow
|
|
|
|
# Remove backup if exists
|
|
if (Test-Path $apiBackupPath) {
|
|
Remove-Item -Recurse -Force $apiBackupPath
|
|
}
|
|
|
|
# Move API folder to backup location
|
|
Move-Item -Path $apiPath -Destination $apiBackupPath
|
|
Write-Host "API routes moved to backup location" -ForegroundColor Green
|
|
}
|
|
|
|
try {
|
|
Write-Host "Cleaning cache..." -ForegroundColor Yellow
|
|
# Remove .next folder to clear cache
|
|
if (Test-Path ".next") {
|
|
Remove-Item -Recurse -Force ".next" -ErrorAction SilentlyContinue
|
|
Write-Host "Cache cleared" -ForegroundColor Green
|
|
}
|
|
|
|
Write-Host "Building Next.js for Electron..." -ForegroundColor Yellow
|
|
|
|
# Set environment variables
|
|
$env:ELECTRON_BUILD = "true"
|
|
|
|
# Set API URL if not already set (bisa diubah sesuai kebutuhan)
|
|
if (-not $env:NEXT_PUBLIC_API_URL) {
|
|
Write-Host "Using default API URL: http://localhost:8081" -ForegroundColor Yellow
|
|
Write-Host "To change API URL, set NEXT_PUBLIC_API_URL environment variable" -ForegroundColor Yellow
|
|
Write-Host "Example: `$env:NEXT_PUBLIC_API_URL='http://31.97.109.192:8081'" -ForegroundColor Cyan
|
|
} else {
|
|
Write-Host "Using API URL: $env:NEXT_PUBLIC_API_URL" -ForegroundColor Green
|
|
}
|
|
|
|
npm run build
|
|
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host "Next.js build successful!" -ForegroundColor Green
|
|
Write-Host "Building Electron installer..." -ForegroundColor Yellow
|
|
npx electron-forge make
|
|
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host "`n========================================" -ForegroundColor Green
|
|
Write-Host "Build completed successfully!" -ForegroundColor Green
|
|
Write-Host "========================================" -ForegroundColor Green
|
|
Write-Host "Installer location: out\make\" -ForegroundColor Cyan
|
|
Write-Host "`nYou can now distribute the installer file." -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host "Electron build failed" -ForegroundColor Red
|
|
}
|
|
} else {
|
|
Write-Host "Next.js build failed, skipping Electron build" -ForegroundColor Red
|
|
}
|
|
} finally {
|
|
# Restore API routes after build
|
|
if (Test-Path $apiBackupPath) {
|
|
Write-Host "`nRestoring API routes..." -ForegroundColor Yellow
|
|
if (Test-Path $apiPath) {
|
|
Remove-Item -Recurse -Force $apiPath
|
|
}
|
|
Move-Item -Path $apiBackupPath -Destination $apiPath
|
|
Write-Host "API routes restored" -ForegroundColor Green
|
|
}
|
|
}
|
|
|
|
|
|
|