Files
LinkPort/fix-node-environment.cmd
曾志威 e1aec14bc1
continuous-integration/drone Build encountered an error
chore: track local setup helper and ignore generated Go caches
2026-10-13 20:02:31 +08:00

20 lines
1.2 KiB
Batchfile

@echo off
setlocal
powershell.exe -NoProfile -Command "$ErrorActionPreference='Stop'; $nodeDir=Join-Path $env:APPDATA 'fnm\aliases\default'; $npmDir=Join-Path $env:APPDATA 'npm'; if (!(Test-Path (Join-Path $nodeDir 'node.exe'))) { throw ('Node not found: '+$nodeDir) }; $original=[Environment]::GetEnvironmentVariable('Path','User'); $entries=@($original -split ';' | Where-Object { $_ }); foreach ($directory in @($nodeDir,$npmDir)) { if (!($entries | Where-Object { $_.TrimEnd('\') -ieq $directory })) { $entries += $directory } }; $updated=$entries -join ';'; if ($updated -cne $original) { [Environment]::SetEnvironmentVariable('Path',$updated,'User') }; if ([Environment]::GetEnvironmentVariable('Path','User') -cne $updated) { throw 'User PATH verification failed' }; Write-Host 'User PATH updated. Existing entries preserved.'"
if errorlevel 1 goto failed
set "PATH=%APPDATA%\fnm\aliases\default;%APPDATA%\npm;%PATH%"
where node
node --version
if errorlevel 1 goto failed
call npm.cmd --version
if errorlevel 1 goto failed
echo.
echo Node and npm are ready. Close and reopen your terminal application.
pause
exit /b 0
:failed
echo.
echo Environment repair failed. See the error above.
pause
exit /b 1