wails generate 的用法
wails generate 是用来 根据你的 Go 代码生成前端可以调用的绑定接口(bindings) 的命令,类似于桥接后端 Go 和前端 JS/TS 的中间层。
👇 它的作用是什么?
当你在 Go 里写了一个结构体或方法,比如:
type MyService struct{}func (m *MyService) Greet(name string) string {return "Hello, " + name
}
然后你注册了它:
func main() {app := NewApp()runtime.EventsOn("someEvent", app.handleEvent)err := wails.Run(&options.App{Bind: []interface{}{app, &MyService{},},})
}
这个时候执行:
wails generate
会生成一个 frontend/wailsjs/
文件夹,里面包含:
- go/main.go(TS定义)
- runtime/index.d.ts
- models/(如果你定义了结构体,也会生成类型定义)
前端就可以这么用:
import { MyService } from '../wailsjs/go/models';MyService.Greet("Alice").then((resp) => {console.log(resp); // Hello, Alice
});
📌 使用场景
通常你会在这些场景执行 wails generate:
- 新增或修改了绑定的 Go 方法/结构体。
- 希望前端有 TypeScript 类型提示支持。
- 你只是想快速同步绑定代码(而不重新 build 整个应用)。
🚀 最佳实践
- 每次修改绑定接口后,运行:
wails generate
每次完整构建前端应用时(wails build),Wails 也会自动调用 generate,你也可以不用手动执行。