63 lines
2.0 KiB
PowerShell
63 lines
2.0 KiB
PowerShell
param(
|
|
[switch]$RemoveLockfile,
|
|
[switch]$Force
|
|
)
|
|
|
|
$commonScript = Join-Path $PSScriptRoot "script-common.ps1"
|
|
if (-not (Test-Path $commonScript)) {
|
|
throw "Missing helper script: $commonScript"
|
|
}
|
|
. $commonScript
|
|
|
|
$repoRoot = Resolve-JournalRepoRoot -StartPath $PSScriptRoot
|
|
$appRoot = Resolve-JournalAppRoot -RepoRoot $repoRoot
|
|
|
|
Write-Host "Cleaning npm artifacts for Journal.App" -ForegroundColor Cyan
|
|
Write-Host "Using app root: $appRoot" -ForegroundColor DarkGray
|
|
|
|
$processNames = @("node", "journalapp", "tauri")
|
|
Get-Process -ErrorAction SilentlyContinue |
|
|
Where-Object { $processNames -contains $_.ProcessName } |
|
|
ForEach-Object {
|
|
try {
|
|
Stop-Process -Id $_.Id -Force -ErrorAction Stop
|
|
Write-Host "Stopped process: $($_.ProcessName) ($($_.Id))" -ForegroundColor DarkGray
|
|
}
|
|
catch {
|
|
Write-Warning "Failed to stop process $($_.ProcessName) ($($_.Id)): $($_.Exception.Message)"
|
|
}
|
|
}
|
|
|
|
Push-Location $appRoot
|
|
try {
|
|
$nodeModulesPath = Join-Path $appRoot "node_modules"
|
|
$lockfilePath = Join-Path $appRoot "package-lock.json"
|
|
|
|
if (Test-Path $nodeModulesPath) {
|
|
if (-not $Force) {
|
|
Write-Host "Removing node_modules (use -Force to suppress prompt)..." -ForegroundColor Yellow
|
|
}
|
|
Remove-Item -Recurse -Force $nodeModulesPath
|
|
Write-Host "Removed node_modules." -ForegroundColor Green
|
|
}
|
|
else {
|
|
Write-Host "node_modules not found; nothing to remove." -ForegroundColor DarkGray
|
|
}
|
|
|
|
if ($RemoveLockfile) {
|
|
if (Test-Path $lockfilePath) {
|
|
Remove-Item -Force $lockfilePath
|
|
Write-Host "Removed package-lock.json." -ForegroundColor Green
|
|
}
|
|
else {
|
|
Write-Host "package-lock.json not found; nothing to remove." -ForegroundColor DarkGray
|
|
}
|
|
}
|
|
else {
|
|
Write-Host "Keeping package-lock.json (pass -RemoveLockfile to delete)." -ForegroundColor DarkGray
|
|
}
|
|
}
|
|
finally {
|
|
Pop-Location
|
|
}
|