|
|
|
@ -0,0 +1,179 @@
@@ -0,0 +1,179 @@
|
|
|
|
|
# 诊断脚本 - 检查项目状态和问题 |
|
|
|
|
param( |
|
|
|
|
[switch]$Fix |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# 设置控制台编码为 UTF-8 |
|
|
|
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 |
|
|
|
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8 |
|
|
|
|
$OutputEncoding = [System.Text.Encoding]::UTF8 |
|
|
|
|
|
|
|
|
|
Write-Host "🔍 GoFaster 项目诊断" -ForegroundColor Cyan |
|
|
|
|
Write-Host "========================" -ForegroundColor Cyan |
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 1. 检查 Node.js 和 npm |
|
|
|
|
Write-Host "1️⃣ 检查 Node.js 环境..." -ForegroundColor Yellow |
|
|
|
|
try { |
|
|
|
|
$nodeVersion = node --version 2>$null |
|
|
|
|
$npmVersion = npm --version 2>$null |
|
|
|
|
|
|
|
|
|
if ($nodeVersion) { |
|
|
|
|
Write-Host " ✅ Node.js: $nodeVersion" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ Node.js 未安装或不在 PATH 中" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($npmVersion) { |
|
|
|
|
Write-Host " ✅ npm: $npmVersion" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ npm 未安装或不在 PATH 中" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
} catch { |
|
|
|
|
Write-Host " ❌ 检查 Node.js 环境失败: $($_.Exception.Message)" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 2. 检查项目结构 |
|
|
|
|
Write-Host "2️⃣ 检查项目结构..." -ForegroundColor Yellow |
|
|
|
|
$requiredFiles = @( |
|
|
|
|
"package.json", |
|
|
|
|
"vue.config.js", |
|
|
|
|
"src/main/index.js", |
|
|
|
|
"src/renderer/main.js", |
|
|
|
|
"public/index.html" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
foreach ($file in $requiredFiles) { |
|
|
|
|
if (Test-Path $file) { |
|
|
|
|
Write-Host " ✅ $file" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ $file (缺失)" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 3. 检查依赖 |
|
|
|
|
Write-Host "3️⃣ 检查依赖..." -ForegroundColor Yellow |
|
|
|
|
if (Test-Path "node_modules") { |
|
|
|
|
Write-Host " ✅ node_modules 存在" -ForegroundColor Green |
|
|
|
|
|
|
|
|
|
# 检查关键依赖 |
|
|
|
|
$keyDependencies = @("vue", "electron", "@vue/cli-service") |
|
|
|
|
foreach ($dep in $keyDependencies) { |
|
|
|
|
$depPath = "node_modules/$dep" |
|
|
|
|
if (Test-Path $depPath) { |
|
|
|
|
Write-Host " ✅ $dep" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ $dep (缺失)" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ node_modules 不存在" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 4. 检查构建文件 |
|
|
|
|
Write-Host "4️⃣ 检查构建文件..." -ForegroundColor Yellow |
|
|
|
|
$buildFiles = @( |
|
|
|
|
"dist/renderer/index.html", |
|
|
|
|
"dist/renderer/js/index.js", |
|
|
|
|
"dist/renderer/js/vendors.js" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
$buildFilesExist = $true |
|
|
|
|
foreach ($file in $buildFiles) { |
|
|
|
|
if (Test-Path $file) { |
|
|
|
|
$size = (Get-Item $file).Length |
|
|
|
|
$sizeKB = [math]::Round($size / 1KB, 2) |
|
|
|
|
Write-Host " ✅ $file ($sizeKB KB)" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ $file (缺失)" -ForegroundColor Red |
|
|
|
|
$buildFilesExist = $false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 5. 检查构建文件内容 |
|
|
|
|
if ($buildFilesExist) { |
|
|
|
|
Write-Host "5️⃣ 检查构建文件内容..." -ForegroundColor Yellow |
|
|
|
|
$indexHtml = Get-Content "dist/renderer/index.html" -Raw |
|
|
|
|
if ($indexHtml -match "vendors\.js") { |
|
|
|
|
Write-Host " ✅ index.html 包含 vendors.js 引用" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ index.html 缺少 vendors.js 引用" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($indexHtml -match "index\.js") { |
|
|
|
|
Write-Host " ✅ index.html 包含 index.js 引用" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ❌ index.html 缺少 index.js 引用" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 6. 检查配置文件 |
|
|
|
|
Write-Host "6️⃣ 检查配置文件..." -ForegroundColor Yellow |
|
|
|
|
$vueConfig = Get-Content "vue.config.js" -Raw |
|
|
|
|
if ($vueConfig -match "publicPath.*['\""]\.\/['\""]") { |
|
|
|
|
Write-Host " ⚠️ vue.config.js 中的 publicPath 可能导致资源加载问题" -ForegroundColor Yellow |
|
|
|
|
} else { |
|
|
|
|
Write-Host " ✅ vue.config.js 配置正常" -ForegroundColor Green |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 7. 总结和建议 |
|
|
|
|
Write-Host "📋 诊断总结" -ForegroundColor Cyan |
|
|
|
|
Write-Host "=============" -ForegroundColor Cyan |
|
|
|
|
|
|
|
|
|
$issues = @() |
|
|
|
|
|
|
|
|
|
if (-not (Test-Path "node_modules")) { |
|
|
|
|
$issues += "依赖未安装" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (-not $buildFilesExist) { |
|
|
|
|
$issues += "构建文件缺失" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($issues.Count -eq 0) { |
|
|
|
|
Write-Host "✅ 项目状态良好,没有发现明显问题" -ForegroundColor Green |
|
|
|
|
} else { |
|
|
|
|
Write-Host "⚠️ 发现以下问题:" -ForegroundColor Yellow |
|
|
|
|
foreach ($issue in $issues) { |
|
|
|
|
Write-Host " • $issue" -ForegroundColor Red |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "" |
|
|
|
|
|
|
|
|
|
# 8. 修复建议 |
|
|
|
|
Write-Host "🔧 修复建议" -ForegroundColor Cyan |
|
|
|
|
Write-Host "=============" -ForegroundColor Cyan |
|
|
|
|
Write-Host "1. 如果依赖缺失,运行: npm install" -ForegroundColor White |
|
|
|
|
Write-Host "2. 如果构建文件缺失,运行: npm run fix:build" -ForegroundColor White |
|
|
|
|
Write-Host "3. 如果问题持续,运行: npm run fix:rebuild" -ForegroundColor White |
|
|
|
|
Write-Host "4. 使用修复版启动脚本: npm run start:fixed" -ForegroundColor White |
|
|
|
|
|
|
|
|
|
if ($Fix) { |
|
|
|
|
Write-Host "" |
|
|
|
|
Write-Host "🔨 自动修复..." -ForegroundColor Yellow |
|
|
|
|
|
|
|
|
|
if (-not (Test-Path "node_modules")) { |
|
|
|
|
Write-Host " 安装依赖..." -ForegroundColor Yellow |
|
|
|
|
npm install |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (-not $buildFilesExist) { |
|
|
|
|
Write-Host " 重新构建..." -ForegroundColor Yellow |
|
|
|
|
npm run fix:build |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Write-Host "✅ 修复完成!" -ForegroundColor Green |
|
|
|
|
} |