# 补跑 npm install (国内镜像) + pip 依赖 (detached worker) $ErrorActionPreference = "Continue" $log = "C:\npm_install.log" "START $(Get-Date)" | Out-File $log -Encoding UTF8 Remove-Item "C:\npm_done.txt" -ErrorAction SilentlyContinue $env:Path = [Environment]::GetEnvironmentVariable("Path","Machine") + ";C:\Program Files\nodejs" $npm = "C:\Program Files\nodejs\npm.cmd" if (-not (Test-Path $npm)) { $c = Get-Command npm.cmd -ErrorAction SilentlyContinue; if ($c) { $npm = $c.Source } } "npm: $npm" | Out-File $log -Append # 国内镜像 + 重试 & $npm config set registry https://registry.npmmirror.com *>> $log 2>&1 & $npm config set fetch-retries 6 *>> $log 2>&1 & $npm config set fetch-retry-maxtimeout 180000 *>> $log 2>&1 & $npm config set fetch-timeout 300000 *>> $log 2>&1 $env:ELECTRON_MIRROR = "https://npmmirror.com/mirrors/electron/" [Environment]::SetEnvironmentVariable("ELECTRON_MIRROR","https://npmmirror.com/mirrors/electron/","Machine") $env:ELECTRON_BUILDER_BINARIES_MIRROR = "https://npmmirror.com/mirrors/electron-builder-binaries/" $py = "C:\Python314\python.exe" "== pip deps ==" | Out-File $log -Append & $py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fastapi "uvicorn[standard]" httpx pypdf --quiet *>> $log 2>&1 "pip exit $LASTEXITCODE" | Out-File $log -Append "== npm install (npmmirror) ==" | Out-File $log -Append Push-Location "C:\projects\research-tool" & $npm install --no-audit --no-fund *>> $log 2>&1 "NPM_EXIT $LASTEXITCODE" | Out-File $log -Append Pop-Location "DONE $(Get-Date)" | Out-File $log -Append "DONE" | Out-File "C:\npm_done.txt"