| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- # Environment check script
- # 设置控制台编码为 UTF-8,避免乱码
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- $OutputEncoding = [System.Text.Encoding]::UTF8
- chcp 65001 | Out-Null
- # 脚本所在目录(部分调用方式下 MyCommand.Path 可能为 null,使用 $PSScriptRoot 或当前目录兜底)
- $scriptRoot = $PSScriptRoot
- if (-not $scriptRoot) { $scriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Path }
- if (-not $scriptRoot) { $scriptRoot = (Get-Location).Path }
- Write-Host "Checking development environment..." -ForegroundColor Cyan
- Write-Host "================================" -ForegroundColor Cyan
- # Check Node.js
- Write-Host "`nChecking Node.js..." -ForegroundColor Yellow
- $nodeVersion = node --version 2>$null
- if ($nodeVersion) {
- Write-Host "[OK] Node.js: $nodeVersion" -ForegroundColor Green
- } else {
- Write-Host "[X] Node.js is not installed" -ForegroundColor Red
- # Download nodejs
- Write-Host "Downloading Node.js..." -ForegroundColor Yellow
- npm install -g node
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] Node.js download failed" -ForegroundColor Red
- exit 1
- }
- Write-Host "[OK] Node.js downloaded successfully" -ForegroundColor Green
- node --version
- }
- # Check npm
- Write-Host "`nChecking npm..." -ForegroundColor Yellow
- $npmVersion = npm --version 2>$null
- if ($npmVersion) {
- Write-Host "[OK] npm: $npmVersion" -ForegroundColor Green
- } else {
- Write-Host "[X] npm is not installed" -ForegroundColor Red
- # Download npm
- Write-Host "Downloading npm..." -ForegroundColor Yellow
- npm install -g npm
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] npm download failed" -ForegroundColor Red
- exit 1
- }
- Write-Host "[OK] npm downloaded successfully" -ForegroundColor Green
- npm --version
- }
- # Check if dependencies are installed
- Write-Host "`nChecking project dependencies..." -ForegroundColor Yellow
- # 调用 nodejs-dependencies-install.js 脚本进行依赖检查和安装
- $nodeDependenciesScript = Join-Path $scriptRoot "nodejs\dependences\nodejs-dependencies-install.js"
- if (Test-Path $nodeDependenciesScript) {
- node $nodeDependenciesScript
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] Node dependencies check/installation failed" -ForegroundColor Red
- exit 1
- }
- } else {
- Write-Host "[X] nodejs-dependencies-install.js not found at: $nodeDependenciesScript" -ForegroundColor Red
- Write-Host "[WARN] Continuing without dependency check..." -ForegroundColor Yellow
- }
- # Check if python is installed
- Write-Host "`nChecking if python is installed..." -ForegroundColor Yellow
- $pythonVersion = python --version 2>$null
- if ($pythonVersion) {
- Write-Host "[OK] python: $pythonVersion" -ForegroundColor Green
- } else {
- Write-Host "[X] python is not installed" -ForegroundColor Red
- # Download python
- Write-Host "Downloading python..." -ForegroundColor Yellow
- npm install -g python
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] python download failed" -ForegroundColor Red
- exit 1
- }
- Write-Host "[OK] python downloaded successfully" -ForegroundColor Green
- python --version
- }
- # check pip is installed
- Write-Host "`nChecking pip is installed..." -ForegroundColor Yellow
- $pipVersion = pip --version 2>$null
- if ($pipVersion) {
- Write-Host "[OK] pip: $pipVersion" -ForegroundColor Green
- } else {
- Write-Host "[X] pip is not installed" -ForegroundColor Red
- Write-Host "Installing pip..." -ForegroundColor Yellow
- pip install --upgrade pip
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] pip installation failed" -ForegroundColor Red
- exit 1
- }
- Write-Host "[OK] pip installed successfully" -ForegroundColor Green
- pip --version
- }
- #check python virtual environment(venv 在 python/x64/env 或 python/arm64/env)
- Write-Host "`nChecking python virtual environment..." -ForegroundColor Yellow
- $arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "x64" }
- $_p = node (Join-Path $scriptRoot "configs\get-python-env-path.js") 2>$null
- $venvPath = if ($_p -and $_p -ne "undefined") { $_p.Trim() } else { Join-Path $scriptRoot "python\$arch\env" }
- if (Test-Path $venvPath) {
- Write-Host "[OK] python virtual environment exists at: $venvPath" -ForegroundColor Green
- } else {
- Write-Host "[X] python virtual environment is not installed" -ForegroundColor Yellow
- Write-Host "Creating python virtual environment..." -ForegroundColor Yellow
- python -m venv $venvPath
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] python virtual environment creation failed" -ForegroundColor Red
- Write-Host "[WARN] Continuing without virtual environment..." -ForegroundColor Yellow
- } else {
- Write-Host "[OK] python virtual environment created successfully" -ForegroundColor Green
- }
- }
- # check python dependencies
- Write-Host "`nChecking python dependencies..." -ForegroundColor Yellow
- # 调用 python-enviroment-install.py 脚本进行依赖检查和安装(安装到虚拟环境,脚本在 python\x64 或 python\arm64 下)
- $pythonDependenciesScript = Join-Path $scriptRoot "python\$arch\python-enviroment-install.py"
- if ($pythonDependenciesScript -and (Test-Path $pythonDependenciesScript)) {
- $env:PYTHON_VENV_PATH = $venvPath; python $pythonDependenciesScript
- if ($LASTEXITCODE -ne 0) {
- Write-Host "[X] Python dependencies check/installation failed" -ForegroundColor Red
- exit 1
- }
- } else {
- Write-Host "[X] python-enviroment-install.py not found at: $pythonDependenciesScript" -ForegroundColor Red
- Write-Host "[WARN] Continuing without Python dependency check..." -ForegroundColor Yellow
- }
- Write-Host "`n================================" -ForegroundColor Cyan
- Write-Host "Environment check completed!" -ForegroundColor Green
- Write-Host "All dependencies are ready. You can now start the project." -ForegroundColor Green
|