Giao diện
Bắt đầu nhanh
Yêu cầu
- Node.js 20 trở lên (bản dựng dùng 22)
- pnpm 10
- Tài khoản Cloudflare (chỉ cần khi triển khai)
Cài đặt
bash
cd chuyenchon.com && pnpm installDựng cơ sở dữ liệu cục bộ
D1 chạy cục bộ bằng SQLite trong .wrangler/state. Lệnh sau tạo lại từ đầu: xoá state, chạy migration rồi nạp dữ liệu mẫu.
bash
cd apps/api && pnpm db:reset:localNếu bạn sửa seed/data.mjs, sinh lại file SQL trước:
bash
cd apps/api && pnpm db:build-seed && pnpm db:reset:localChạy API Gateway
bash
cd apps/api && pnpm devWorker phục vụ ở http://127.0.0.1:8788. Kiểm tra nhanh:
bash
curl http://127.0.0.1:8788/healthChạy frontend
bash
cd apps/web && pnpm devVite chạy ở http://localhost:5173 và proxy mọi request /v1/* sang Worker cục bộ, nên khi phát triển không cần đặt VITE_API_BASE.
Dựng bản production (kèm prerender)
Bước prerender gọi API thật để sinh HTML tĩnh, nên API Gateway phải phản hồi được tại VITE_API_BASE trong lúc build:
bash
cd apps/web
VITE_API_BASE=http://127.0.0.1:8788 pnpm buildKết quả nằm ở apps/web/dist, gồm HTML tĩnh cho từng trường, đề thi, kỳ thi, giáo viên và sitemap.xml.
Kiểm tra bản dựng
vite preview chỉ phục vụ trang tĩnh khi URL có dấu / ở cuối (ví dụ /truong/chuyen-khtn/). Cloudflare Pages tự xử lý cả hai dạng, nên đây chỉ là đặc thù của công cụ xem thử.
Tài liệu này
bash
cd docs.chuyenchon.com && pnpm install && pnpm dev