Documentation
¶
Overview ¶
Package devtools 提供开发工具支持,用于 enhance 框架。
Package devtools 提供开发工具支持,用于 enhance 框架。
该模块包含开发环境下的调试工具、性能分析、热重载等开发辅助功能。 仅在开发模式下启用,生产环境自动禁用。
架构设计 ¶
- HotReloader: 热重载管理器接口,监控文件变更并触发重载
- FileWatcher: 文件监控器接口,监控文件变化
- DevModeDetector: 开发模式检测器接口
- ReloadEvent: 重载事件结构体,记录文件变更信息
- ReloadType: 重载类型枚举
- ReloadCallback: 重载回调函数类型
- HotReloaderOption: 热重载配置选项函数
核心功能 ¶
- 文件监控: 监控指定目录的文件变更
- 热重载: 文件变更时触发回调函数
- 灵活配置: 支持自定义监控目录、扩展名、轮询间隔等
使用方式 ¶
创建热重载器:
reloader := devtools.NewHotReloader(
devtools.WithWatchDirs("./internal", "./pkg"),
devtools.WithExtensions(".go"),
devtools.WithInterval(time.Second),
)
启动监控:
reloader.Start(func(event devtools.ReloadEvent) {
fmt.Printf("文件变更: %s (%s)\n", event.File, event.Type)
})
环境变量 ¶
开发工具仅在开发模式下启用,通过环境变量控制:
export ENHANCE_DEV_MODE=true
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DevModeDetector ¶
type DevModeDetector interface {
// IsDevMode 检测是否为开发模式。
IsDevMode() bool
}
DevModeDetector 开发模式检测器接口。
检测当前是否处于开发模式。
type FileWatcher ¶
type FileWatcher interface {
// OnChange 注册文件变化回调。
OnChange(callback ReloadCallback)
// Start 启动监控。
Start() error
// Stop 停止监控。
Stop()
}
FileWatcher 文件监控器接口。
监控指定目录的文件变化,支持自定义扩展名过滤。
func NewFileWatcher ¶
func NewFileWatcher(dirs []string, extensions ...string) FileWatcher
NewFileWatcher 创建文件监控器。
type HotReloader ¶
type HotReloader interface {
// OnReload 注册重载回调。
OnReload(callback ReloadCallback)
// Start 启动文件监控。
Start() error
// Stop 停止文件监控。
Stop()
}
HotReloader 热重载管理器接口。
通过轮询方式监控指定目录的文件变更, HotReloader 热重载器核心接口。
当检测到文件创建、修改或删除时触发回调函数。
type HotReloaderInfo ¶ added in v0.0.3
type HotReloaderInfo interface {
HotReloader
// IsRunning 检查是否正在运行。
IsRunning() bool
// GetWatchedFiles 获取所有被监控的文件。
GetWatchedFiles() []string
// GetWatchDirs 获取监控目录。
GetWatchDirs() []string
// Restart 重启热重载。
Restart() error
}
HotReloaderInfo 热重载信息接口。
提供热重载状态查询功能。
func NewHotReloader ¶
func NewHotReloader(opts ...HotReloaderOption) HotReloaderInfo
NewHotReloader 创建热重载管理器。
type HotReloaderOption ¶
type HotReloaderOption func(HotReloader)
HotReloaderOption 热重载器配置选项函数。
func WithExtensions ¶
func WithExtensions(exts ...string) HotReloaderOption
WithExtensions 设置监控的文件扩展名。
func WithInterval ¶
func WithInterval(interval time.Duration) HotReloaderOption
WithInterval 设置轮询间隔。
type LiveReloadServer ¶
type LiveReloadServer struct {
// contains filtered or unexported fields
}
LiveReloadServer 实时重载服务器。
func NewLiveReloadServer ¶
func NewLiveReloadServer(port int, reloader HotReloader) (*LiveReloadServer, error)
NewLiveReloadServer 创建实时重载服务器。
func (*LiveReloadServer) IsRunning ¶
func (s *LiveReloadServer) IsRunning() bool
IsRunning 检查是否正在运行。
type ReloadEvent ¶
type ReloadEvent struct {
// File 触发重载的文件。
File string
// Type 事件类型。
Type ReloadType
// Timestamp 事件时间。
Timestamp time.Time
// OldHash 旧文件哈希。
OldHash string
// NewHash 新文件哈希。
NewHash string
}
ReloadEvent 重载事件。
type ReloadType ¶
type ReloadType string
ReloadType 重载类型。
const ( // ReloadTypeCreated 文件创建。 ReloadTypeCreated ReloadType = "CREATED" // ReloadTypeModified 文件修改。 ReloadTypeModified ReloadType = "MODIFIED" // ReloadTypeDeleted 文件删除。 ReloadTypeDeleted ReloadType = "DELETED" )
重载类型常量。