generated from ttipo/project-base
def96e833b
- 설정 메뉴 셋째 묶음 "정보", 목록은 게시판 표(줄 전체 링크 · [더 보기]), 글은 [← 목록으로] · 다음 글 · 이전 글 줄 · [목록] - 글을 보는 동안에도 메뉴 항목이 고른 상태다(aria-current 는 목록 page · 글 true) - 문서가 스크롤하는 좁은 폭에서도 글 · 목록이 맨 위부터 보이고(라우터 전역 scrollBehavior 없이), 위에 붙은 줄에 초점이 가리지 않는다 - 날짜는 달력 날짜 글이라 시간대를 거치지 않는다, /settings/info 는 목록으로 바꿔 끼운다 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
frontend — ARA SYSTEM 웹메일 (Vue 3)
웹메일 화면이다. 개발에서는 호스트의 vite 로, 운영에서는 nginx 가 화면을 내주고 같은 주소의 /api 를 백엔드로 넘긴다.
- 구조 · 개발 규칙(골격 · 스토어 · 컴포저블 · 화면별 파일):
.claude/skills/vue3/SKILL.md - 화면 디자인 · 화면 문구 규칙:
docs/design/webmail/README.md - API 약속:
docs/mail/api-contract.md
개발 서버
cd frontend && npm install && npm run dev # http://localhost:5173 — /api 는 vite 프록시가 백엔드 컨테이너로
백엔드 · DB · 메일 엔진은 루트의 개발 스택으로 먼저 띄운다(루트 README "빠른 시작"). 포트는 루트 .env.{mode} 의 FRONTEND_PORT · BACKEND_PORT 를 따른다.
API 응답이 JSON 이 아니라 HTML 이면 vite 프록시가 백엔드에 닿지 못한 것이다(백엔드 컨테이너 · 포트를 본다).
검사
npm run lint # 경고 0
npm run type-check
npm run test:unit # 시간대가 걸린 화면을 고쳤으면 Git Bash 에서 TZ=UTC npm run test:unit -- --run 도
운영 빌드
운영은 이미지(nginx)로 만든다 — docker compose --env-file .env.production up -d --build(docker 스킬 "운영 환경" · "같은 주소 배포"). VITE_API_BASE_URL 은 /api 로 고정이다.
편집기
VS Code + Vue (Official). 형 검사는 vue-tsc 다.