mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-20 00:48:12 +00:00
三类问题,都会让新用户第一次上手就走错:
1. README 仍写 plugin.so
plugin.json 示例的 entry、entry 字段说明、.hmap 包格式三处描述的都是
已退场的 C ABI 产物。改为 plugin.bin,并补 bundle 模式下
plugin.bin.<goos>.<goarch> 的命名与安装时挑平台的行为。
2. cmd_init.go 的 entry := "plugin.so"
scaffold 出来的 plg.json 带着一个已退场的 entry 值。build 实际不看这个
值(只用它区分 Lua),但跟着模板走会误以为自己在做 C ABI 插件。
3. 生成的项目第一次 build 必定失败
go.mod 只 require 一个 gitcode 模块版本号且不生成 go.sum。gitcode 不在
proxy.golang.org 上,于是:
go build → missing go.sum entry
go mod tidy → 去公共 proxy 拉一个不存在的条目,超时
原来 cmdBuild 里那句 `go mod download <mod>` 走的正是这条死路,失败后
只打一行 warn 就继续编译,紧接着死在同一个错误上——用户看到两段无关报错。
修法分两处:
- 生成的 go.mod 直接写指向本机 SDK 的 replace(replace 到目录时 go 不
需要也不校验 go.sum)
- 新增 ensureSDKResolvable:三级策略(已有本地 replace → 探测本机 SDK
并写入 → 兜底 go mod tidy 带 -mod=mod,失败给可操作提示)。存量项目
go.mod 无 replace 时走第二级救回。
bin/ 5 个预编译二进制不再进仓库(改为 release 附件):
5 个平台各 26-28MB,每次重编都在 git 历史里再叠一份,而它们本质是可从源码
复现的产物。README 的下载说明同步改为 release 附件 URL + 从源码编译。
38 lines
659 B
Plaintext
38 lines
659 B
Plaintext
# Build artifacts
|
||
*.so
|
||
*.dll
|
||
*.o
|
||
*.exe
|
||
*.hmap
|
||
plugin.json
|
||
|
||
# Build output directories
|
||
build/
|
||
dist/
|
||
|
||
# plugindev 预编译二进制:只作为 release 附件分发,不进仓库历史。
|
||
# 此前 5 个平台各 26-28MB 被 git 跟踪(约 137MB),每次重编都在历史里
|
||
# 再叠一份,而它们本质是可从源码复现的产物。
|
||
bin/
|
||
|
||
# Test artifacts
|
||
testdist/
|
||
|
||
# Logs
|
||
*.log
|
||
|
||
# Generated bridge files
|
||
z_bridge_gen.go
|
||
z_entry.c
|
||
|
||
# Binaries (except pre-built distributions in bin/)
|
||
/plugindev
|
||
*_debug*
|
||
|
||
# Pre-built plugindev binaries in bin/ should be tracked
|
||
!bin/plugindev*
|
||
!bin/*.exe
|
||
|
||
# plugindev binary in tools/
|
||
tools/plugindev/plugindev
|