MVP: 按 07 风格重写前端 + Go 后端落地(长文/短文、编辑器、后台管理)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
SHELL := /bin/bash
|
||||
GO ?= go
|
||||
PNPM ?= pnpm
|
||||
ADDR ?= :8080
|
||||
|
||||
.PHONY: help deps web server dev start build test clean db-reset stop logs
|
||||
|
||||
help:
|
||||
@echo "ONE · 一个博客"
|
||||
@echo ""
|
||||
@echo " make dev 前后端一起起(后端 8080,前端 3000 带热更新)"
|
||||
@echo " make web 只构建前端到 frontend/dist"
|
||||
@echo " make server 只起后端(8080)"
|
||||
@echo " make start 构建前端 + 单端口启动(8080 同时服务前后端)"
|
||||
@echo " make deps 安装前后端依赖"
|
||||
@echo " make test 跑后端测试"
|
||||
@echo " make stop 停掉 make dev 起的两个进程"
|
||||
@echo " make logs 看 dev 进程日志"
|
||||
@echo " make clean 清理构建产物"
|
||||
@echo " make db-reset 删掉本地 SQLite 库(会清空数据)"
|
||||
|
||||
deps:
|
||||
cd backend && $(GO) mod download
|
||||
cd frontend && $(PNPM) install
|
||||
|
||||
web:
|
||||
cd frontend && $(PNPM) run build
|
||||
|
||||
server:
|
||||
cd backend && ONE_ADDR=$(ADDR) $(GO) run .
|
||||
|
||||
# 一条命令起后端 + 前端(开发用,两个进程)
|
||||
# 输出写进 .run/*.log,避免后台进程占住终端导致命令不返回
|
||||
dev:
|
||||
@mkdir -p .run
|
||||
@(cd backend && { ONE_ADDR=$(ADDR) $(GO) run . > ../.run/server.log 2>&1 & echo $$! > ../.run/server.pid; })
|
||||
@(cd frontend && { $(PNPM) run dev > ../.run/web.log 2>&1 & echo $$! > ../.run/web.pid; })
|
||||
@echo "后端 http://localhost:8080 (日志 .run/server.log)"
|
||||
@echo "前端 http://localhost:3000 (日志 .run/web.log)"
|
||||
@echo "停止:make stop 看日志:make logs"
|
||||
|
||||
# 生产式单端口:构建前端,由 Go 静态托管
|
||||
start: web
|
||||
cd backend && ONE_ADDR=$(ADDR) $(GO) run .
|
||||
|
||||
build: web
|
||||
cd backend && $(GO) build -o ../one-server .
|
||||
|
||||
test:
|
||||
cd backend && $(GO) test ./...
|
||||
|
||||
stop:
|
||||
@for f in .run/server.pid .run/web.pid; do \
|
||||
if [ -f $$f ]; then pid=$$(cat $$f); \
|
||||
pkill -P $$pid 2>/dev/null; kill $$pid 2>/dev/null; \
|
||||
fi; \
|
||||
done
|
||||
@rm -f .run/*.pid
|
||||
@echo stopped
|
||||
|
||||
logs:
|
||||
@tail -f .run/server.log .run/web.log
|
||||
|
||||
clean:
|
||||
rm -rf frontend/dist one-server .run
|
||||
|
||||
db-reset:
|
||||
rm -f data/one.db data/one.db-wal data/one.db-shm
|
||||
Reference in New Issue
Block a user