feat: hot reload

This commit is contained in:
2025-12-17 09:32:05 +08:00
parent e8b2699104
commit f2b53967eb
7 changed files with 95 additions and 32 deletions

View File

@@ -7,6 +7,11 @@ FRONTEND_SUPERADMIN_DIR := frontend/superadmin
ATOMCTL ?= atomctl
ADMIN_DEV_PORT ?= 5173
USER_DEV_PORT ?= 5174
SUPER_DEV_PORT ?= 5175
BACKEND_DEV_PORT ?= 8080
TENANT_CODE ?= demo
TENANT_NAME ?= Demo Tenant
TENANT_UUID ?= $(shell python3 -c 'import uuid; print(uuid.uuid4())' 2>/dev/null || uuidgen 2>/dev/null || echo "00000000-0000-0000-0000-000000000000")
@@ -20,10 +25,16 @@ help:
@printf "%s\n" " make build-frontend Build admin+user frontends (requires npm)"
@printf "%s\n" " make serve Run backend server (serves built dist)"
@printf "%s\n" " make preview build + serve"
@printf "%s\n" " make dev Run air + 3 vite dev servers"
@printf "%s\n" ""
@printf "%s\n" "Preview URLs (after make preview):"
@printf "%s\n" " User : http://localhost:8080/t/$(TENANT_CODE)/"
@printf "%s\n" " Admin: http://localhost:8080/t/$(TENANT_CODE)/admin/"
@printf "%s\n" ""
@printf "%s\n" "Dev URLs (after make dev):"
@printf "%s\n" " Super: http://localhost:$(SUPER_DEV_PORT)/super/"
@printf "%s\n" " Admin: http://localhost:$(ADMIN_DEV_PORT)/t/$(TENANT_CODE)/admin/"
@printf "%s\n" " User : http://localhost:$(USER_DEV_PORT)/t/$(TENANT_CODE)/"
.PHONY: migrate
migrate:
@@ -66,3 +77,30 @@ serve:
.PHONY: preview
preview: build-frontend serve
.PHONY: dev-backend
dev-backend:
@cd $(BACKEND_DIR) && command -v air >/dev/null 2>&1 || (echo "air not found: go install github.com/air-verse/air@latest" && exit 1)
@cd $(BACKEND_DIR) && air -c .air.toml
.PHONY: dev-admin
dev-admin:
@cd $(FRONTEND_ADMIN_DIR) && npm run dev -- --host 0.0.0.0 --port $(ADMIN_DEV_PORT) --strictPort
.PHONY: dev-user
dev-user:
@cd $(FRONTEND_USER_DIR) && npm run dev -- --host 0.0.0.0 --port $(USER_DEV_PORT) --strictPort
.PHONY: dev-superadmin
dev-superadmin:
@cd $(FRONTEND_SUPERADMIN_DIR) && npm run dev -- --host 0.0.0.0 --port $(SUPER_DEV_PORT) --strictPort
.PHONY: dev
dev:
@set -e; \
trap 'kill 0' INT TERM EXIT; \
$(MAKE) dev-backend & \
$(MAKE) dev-admin & \
$(MAKE) dev-user & \
$(MAKE) dev-superadmin & \
wait