# PowerShell 脚本:设置 Node.js 内存限制环境变量 # 需要以管理员权限运行 Write-Host "================================================" -ForegroundColor Cyan Write-Host "Node.js 内存限制设置工具" -ForegroundColor Cyan Write-Host "================================================" -ForegroundColor Cyan Write-Host "" # 检查是否以管理员权限运行 $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) if (-not $isAdmin) { Write-Host "[警告] 设置系统环境变量需要管理员权限" -ForegroundColor Yellow Write-Host "将仅为当前用户设置环境变量..." -ForegroundColor Yellow Write-Host "" } # 内存大小选项 Write-Host "请选择内存限制大小:" -ForegroundColor Green Write-Host "1. 4GB (4096 MB) - 推荐用于小型项目" Write-Host "2. 8GB (8192 MB) - 推荐用于中型项目 [默认]" Write-Host "3. 16GB (16384 MB) - 推荐用于大型项目" Write-Host "4. 自定义大小" Write-Host "" $choice = Read-Host "请输入选项 (1-4,直接回车使用默认值 8GB)" $memorySize = 8192 switch ($choice) { "1" { $memorySize = 4096 } "2" { $memorySize = 8192 } "3" { $memorySize = 16384 } "4" { $customSize = Read-Host "请输入自定义内存大小 (MB)" if ($customSize -match '^\d+$') { $memorySize = [int]$customSize } else { Write-Host "[错误] 无效的数字,使用默认值 8192 MB" -ForegroundColor Red } } default { $memorySize = 8192 } } $nodeOptions = "--max-old-space-size=$memorySize" Write-Host "" Write-Host "将设置 NODE_OPTIONS = $nodeOptions" -ForegroundColor Green Write-Host "内存限制:$memorySize MB ($($memorySize/1024) GB)" -ForegroundColor Green Write-Host "" # 设置环境变量 try { if ($isAdmin) { # 设置系统环境变量 [System.Environment]::SetEnvironmentVariable("NODE_OPTIONS", $nodeOptions, [System.EnvironmentVariableTarget]::Machine) Write-Host "[成功] 已设置系统环境变量(对所有用户生效)" -ForegroundColor Green } else { # 设置用户环境变量 [System.Environment]::SetEnvironmentVariable("NODE_OPTIONS", $nodeOptions, [System.EnvironmentVariableTarget]::User) Write-Host "[成功] 已设置用户环境变量(仅对当前用户生效)" -ForegroundColor Green } Write-Host "" Write-Host "重要提示:" -ForegroundColor Yellow Write-Host "1. 请重启 HBuilderX 使环境变量生效" -ForegroundColor Yellow Write-Host "2. 如果问题仍然存在,请尝试增大内存限制" -ForegroundColor Yellow Write-Host "3. 也可以尝试清理项目缓存(运行 → 清理项目缓存)" -ForegroundColor Yellow Write-Host "" } catch { Write-Host "[错误] 设置环境变量失败:$($_.Exception.Message)" -ForegroundColor Red Write-Host "" Write-Host "手动设置方法:" -ForegroundColor Yellow Write-Host "1. 右键'此电脑' → '属性' → '高级系统设置' → '环境变量'" -ForegroundColor Yellow Write-Host "2. 在'用户变量'中新建变量:" -ForegroundColor Yellow Write-Host " 变量名:NODE_OPTIONS" -ForegroundColor Yellow Write-Host " 变量值:$nodeOptions" -ForegroundColor Yellow Write-Host "" } Write-Host "按任意键退出..." $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")