根目录原 7 个 app*.go 平铺,现收进 internal/app/ 子包: - package main → package app - NewApp → New(导出) - startup/shutdown → Startup/Shutdown(导出,供 main.go 引用) - main.go 改为薄入口,仅导入 internal/app 并装配 Wails 前端同步更新(Wails 绑定路径 go/main → go/app): - window.go.main.App → window.go.app.App(10 处) - env.d.ts 类型声明路径 wailsjs/go/main/App → wailsjs/go/app/App 根目录 Go 文件从 7 个减至 1 个(main.go),元文件更清晰
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"embed"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/wailsapp/wails/v2"
|
|
"github.com/wailsapp/wails/v2/pkg/options"
|
|
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
|
|
|
|
"douyu_go/internal/app"
|
|
)
|
|
|
|
//go:embed all:frontend/dist
|
|
var assets embed.FS
|
|
|
|
func main() {
|
|
a := app.New()
|
|
|
|
err := wails.Run(&options.App{
|
|
Title: "斗鱼抢购系统",
|
|
Width: 1280,
|
|
Height: 860,
|
|
MinWidth: 900,
|
|
MinHeight: 600,
|
|
AssetServer: &assetserver.Options{
|
|
Assets: assets,
|
|
},
|
|
OnStartup: a.Startup,
|
|
OnShutdown: a.Shutdown,
|
|
Bind: []interface{}{
|
|
a,
|
|
},
|
|
})
|
|
if err != nil {
|
|
log.Printf("启动失败: %v", err)
|
|
// GUI 应用无控制台,把启动错误写入崩溃日志文件,便于用户事后排查。
|
|
if dir, derr := os.UserCacheDir(); derr == nil {
|
|
path := filepath.Join(dir, "douyu-go", "startup_error.log")
|
|
_ = os.MkdirAll(filepath.Dir(path), 0o755)
|
|
_ = os.WriteFile(path, []byte("斗鱼抢购系统启动失败:\n"+err.Error()+"\n"), 0o644)
|
|
}
|
|
os.Exit(1)
|
|
}
|
|
}
|