Flipt项目本地开发环境搭建指南
项目概述
Flipt是一个功能开关(Feature Flag)管理系统,采用Go语言开发,支持REST和gRPC接口,并内置了现代化的Web管理界面。本文将详细介绍如何在本地搭建Flipt的开发环境,帮助开发者快速上手项目开发工作。
开发环境准备
基础软件要求
在开始Flipt开发前,需要确保本地已安装以下软件:
- GCC编译器:用于CGO编译
- SQLite数据库:Flipt默认使用的存储引擎
- Go 1.24+:项目的主要开发语言
- NodeJS 18+:前端开发环境
- Mage构建工具:项目构建系统
- Docker:用于运行测试环境
CGO配置
Flipt使用CGO来编译SQLite组件,如果遇到类似undefined: sqlite3.Error
的错误,需要启用CGO:
-
Windows系统:
set CGO_ENABLED=1
-
Linux/Mac系统:
export CGO_ENABLED=1
项目初始化步骤
-
获取项目代码:
git clone https://github.com/flipt-io/flipt
-
安装开发工具:
mage bootstrap
-
运行测试:
mage go:test
-
构建项目:
mage
-
查看可用命令:
mage -l
开发规范
提交信息规范
Flipt采用Conventional Commits规范来管理提交信息,这有助于自动生成变更日志和发布说明。建议安装pre-commit工具来校验提交信息:
pip install pre-commit # 或 brew install pre-commit (Mac)
pre-commit install
开发配置
配置文件
项目提供了本地开发配置文件./config/local.yml
,可以通过以下方式运行:
./bin/flipt --config ./config/local.yml
也可以将配置文件放在用户配置目录下({{ USER_CONFIG_DIR }}/flipt/config.yml
),这样就不需要每次都指定配置文件路径。
特定文件修改指南
Proto文件修改
当修改flipt.proto
文件后,需要重新生成相关代码:
mage proto
前端开发
Flipt的前端基于Vite构建,开发时可以采用热重载模式:
-
启动前端开发服务器:
mage ui:dev
-
启动后端服务:
mage dev
-
访问
http://localhost:5173
查看效果
开发端口说明:
8080
:REST API端口9000
:gRPC服务端口
容器化开发方案
Docker Compose开发
项目提供了docker-compose.yml文件,可以快速启动开发环境:
docker-compose up
启动后会运行两个容器:
server
:运行Flipt服务端ui
:运行前端开发服务器
访问http://localhost:5173
即可查看效果。
集成开发环境方案
Flipt支持多种容器化开发环境(CDE):
-
VSCode Remote Containers:
- 安装Docker和Remote-Containers扩展
- 打开项目后执行"Open Folder in Container"命令
-
GitHub Codespaces:
- 直接从GitHub界面创建Codespace
-
Gitpod:
- 通过Gitpod按钮一键启动开发环境
高级开发方案:devenv
devenv是基于Nix的开发者环境解决方案,提供快速、声明式、可复现的开发环境:
- 安装devenv(参考官方文档)
- 启动开发环境:
devenv up
启动后:
- 后端服务运行在8080端口
- 前端开发服务器运行在5173端口
开发建议
- 前后端分离开发:建议前端开发时使用
mage ui:dev
启动独立的前端服务器,可以获得更好的开发体验 - 数据库持久化:开发时SQLite数据库文件会保存在本地,注意定期备份重要数据
- 构建缓存:Mage构建系统会缓存构建结果,遇到奇怪问题时可以尝试清理缓存
通过本文介绍的方法,开发者可以快速搭建Flipt项目的本地开发环境,并了解项目的基本开发流程和规范。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考