start-dev.ps1ā¢1.5 kB
Param(
[switch]$Watch
)
function Write-ColorOutput {
param(
[string]$Message,
[string]$Color = "White"
)
Write-Host $Message -ForegroundColor $Color
}
try {
Write-ColorOutput "š Starting Development Server..." -Color Green
# Load environment variables from .env if available
if (Test-Path ".env") {
Get-Content .env | ForEach-Object {
if ($_ -match "^(?<key>[^#=]+)=(?<value>.+)$") {
$key = $matches['key'].Trim()
$value = $matches['value'].Trim()
[System.Environment]::SetEnvironmentVariable($key, $value, 'Process')
}
}
Write-ColorOutput "ā Environment variables loaded from .env" -Color Cyan
}
# Install dependencies if node_modules missing
if (-not (Test-Path "node_modules")) {
Write-ColorOutput "š¦ Installing dependencies (npm install)..." -Color Yellow
npm install
if ($LASTEXITCODE -ne 0) {
throw "npm install failed"
}
}
# Start dev server with hot reload
if ($Watch) {
Write-ColorOutput "š Starting server in watch mode (nodemon)..." -Color Yellow
npx nodemon server.js
}
else {
Write-ColorOutput "ā¶ Starting server (node server.js)..." -Color Yellow
node server.js
}
}
catch {
Write-ColorOutput "ā Error: $_" -Color Red
exit 1
}
finally {
Write-ColorOutput " Development server stopped" -Color DarkYellow
}