diff --git a/Makefile b/Makefile index b3b6ba2..3c7568d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all dev-frontend dev-backend build build-frontend build-backend clean test lint +.PHONY: all dev dev-frontend dev-backend build build-frontend build-backend clean test lint # Variables APP_NAME := imc-vibe @@ -30,13 +30,16 @@ build-backend: build-frontend @echo "Backend built successfully" # Development targets +dev: dev-frontend dev-backend + @echo "Development mode running..." + dev-frontend: @echo "Starting frontend dev server..." cd $(FRONTEND_DIR) && bun run dev dev-backend: - @echo "Starting backend dev server..." - cd $(BACKEND_DIR) && USE_EMBEDDED=false go run ./cmd/server + @echo "Starting backend dev server (hot-reload enabled)..." + cd $(BACKEND_DIR) && USE_EMBEDDED=false air # Clean build artifacts clean: @@ -63,8 +66,9 @@ help: @echo " build - Build frontend and backend" @echo " build-frontend - Build frontend only" @echo " build-backend - Build backend only" + @echo " dev - Start both frontend and backend with hot-reload" @echo " dev-frontend - Start frontend dev server" - @echo " dev-backend - Start backend dev server" + @echo " dev-backend - Start backend dev server (requires: go install github.com/air-verse/air@latest)" @echo " clean - Remove build artifacts" @echo " test - Run backend tests" @echo " lint - Run Go vet" diff --git a/backend/.air.toml b/backend/.air.toml new file mode 100644 index 0000000..00dba37 --- /dev/null +++ b/backend/.air.toml @@ -0,0 +1,18 @@ +# .air.toml - Air configuration for hot-reloading Go backend +# Install air: go install github.com/air-verse/air@latest + +[root] + temp_dir = "tmp" + watch_dirs = ["."] + ignore_dirs = ["tmp", "vendor", "cmd/server/embed"] + +[build] + bin = "./tmp/imc-vibe" + cmd = "go build -o ./tmp/imc-vibe ./cmd/server" + stop_on_error = true + +[log] + main_only = true + +[misc] + clean_on_exit = true