You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

179 lines
5.2 KiB

# 诊断脚本 - 检查项目状态和问题
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
}