返回市场
串联-MCP

串联-MCP

作者:yyovil3 星标更新:2025-10-19

项目介绍

Go 项目模板

一个带有 Nix 开发环境和 direnv 集成的极简 Go 项目模板,具有自动初始化功能。

特性

  • 🚀 支持 Go 1.25.1
  • ❄️ 使用 Nix flakes 实现可重复的开发环境
  • 🔧 使用 direnv 自动加载环境
  • 📦 预配置了必要的 Go 工具(gopls, gotools, goreleaser)
  • 🤖 自动初始化脚本,快速设置项目

先决条件

启用 Nix Flakes

~/.config/nix/nix.conf/etc/nix/nix.conf 中添加:

experimental-features = nix-command flakes

快速开始

1. 使用此模板

点击 GitHub 上的“使用此模板”按钮或克隆此仓库:

git clone {yourRepoUrl}
cd {yourProjectName}
bash scripts/init.sh {yourModuleName}

2. 验证设置

go list

项目结构

.
├── .envrc              # direnv 配置
├── .gitignore          # Git 忽略规则
├── flake.nix           # 用于开发环境的 Nix flake
├── flake.lock          # 锁定依赖项
├── go.mod              # Go 模块文件
├── go.sum              # Go 依赖项校验和
├── main.go             # 主应用程序文件
└── pkgs/               # 额外的包目录

开发

可用工具

Nix 开发环境包括:

  • go - Go 编译器和工具链
  • gopls - Go 语言服务器
  • gotools - 额外的 Go 工具
  • goreleaser - 发布自动化工具

构建

go build -o bin/app .

运行

go run main.go

测试

go test ./...

环境变量

开发环境设置了:

  • GOROOT - 指向由 Nix 管理的 Go 安装
  • GOPATH - 设置为项目目录中的 .go
  • GOBIN - 设置为 .go/bin 以安装二进制文件
  • PATH - 更新为包含 $GOPATH/bin

自定义

修改 Nix 环境

编辑 flake.nixbuildInputs 部分添加或移除包:

buildInputs = with pkgs; [ 
  go 
  gopls 
  gotools 
  goreleaser
  # 在此处添加更多包
];

CI/CD

此模板已准备好用于 GitHub Actions 或其他 CI/CD 管道。Nix flake 确保在不同环境中构建的一致性。

许可证

在此处指定您的许可证。 </中文翻译>